Namespaces
Variants

std::ranges:: approximately_sized_range

From cppreference.net
Ranges library
Range adaptors
헤더 파일에 정의됨 <ranges>
template < class T >

concept approximately_sized_range = ranges:: range < T > &&
requires ( T & t ) {
ranges :: reserve_hint ( t ) ;

} ;
(C++26부터)

approximately_sized_range 개념은 range 타입이 reserve_hint 함수를 통해 상수 시간 내에 자신의 크기를 추정할 수 있는 요구사항을 명시합니다.

목차

의미론적 요구사항

주어진 타입 t 의 lvalue std:: remove_reference_t < T > 에 대해, T approximately_sized_range 를 모델링하려면 다음 조건을 만족해야 합니다

  • ranges :: reserve_hint ( t )
  • 분할 상환된 상수 시간 복잡도를 가집니다,
  • t 의 값을 동등성 보존 표현식에서 관찰 가능한 방식으로 변경하지 않으며,
  • 음수가 아니고 ranges:: range_difference_t < T > 에 표현 가능한 값을 가집니다, 그리고
  • 만약 ranges:: iterator_t < T > forward_iterator 를 모델링하고, ranges :: reserve_hint ( t ) ranges:: begin ( t ) 의 평가와 관계없이 잘 정의된다면 (즉, 단일 패스 대략 크기 범위는 begin 의 첫 호출 전에만 reserve_hint 호출을 지원할 수 있지만, 순방향 범위는 항상 크기를 지원해야 함).

참고 사항

기능 테스트 매크로 표준 기능
__cpp_lib_ranges_reserve_hint 202502L (C++26) ranges::approximately_sized_range

예제

참고 항목

범위가 자신의 크기를 상수 시간에 알 수 있음을 지정함
(concept)