ranges_approximately_sized_range

ranges_approximately_sized_range (근사 크기 범위 개념)

ranges::approximately_sized_range은 reserve_hint 함수로 상수 시간에 크기를 추정할 수 있는 range 타입의 요구사항을 지정하는 개념이에요. C++26부터 사용할 수 있어요.

출처: cppreference

본문

<ranges> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.

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

(since C++26)

approximately_sized_range 개념은 reserve_hint 함수로 상수 시간에 크기를 추정할 수 있는 range 타입의 요구사항을 지정해요.

의미 요구사항 (Semantic requirements)

std::remove_reference_t<T> 타입의 lvalue t가 주어졌을 때 T는 다음을 만족할 때만 approximately_sized_range를 모델링해요:

  • ranges::reserve_hint(t)가
    • 분할 상환 상수 시간 복잡도를 갖고,
    • equality-preserving 표현식에 관찰 가능한 방식으로 t 값을 변경하지 않고,
    • 예약 최소 크기 추정치를 반환해야 해요.

참고 (Notes)

이 개념은 sized_range의 근사 버전이에요. 정확한 크기가 필요하면 sized_range를 사용해요.

더 알아보기 (Learn more)

cppreference