Namespaces
Variants

std::ranges::approximately_sized_range

来自 zh.cppreference.net
 
 
范围库
范围适配器
 
定义于头文件 <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 函数在常数时间内估算其大小。

语义要求

给定类型为 std:: remove_reference_t < T > 的左值 t ,当且仅当满足以下条件时 T 才实现 approximately_sized_range 概念:

  • ranges :: reserve_hint ( t )
  • 若 ranges:: iterator_t < T > 满足 forward_iterator 概念,则无论 ranges:: begin ( t ) 是否被求值, ranges :: reserve_hint ( t ) 始终良定义(换言之,单遍近似大小范围可能仅在首次调用 begin 前支持调用 reserve_hint ,但前向范围必须始终支持大小查询)。

注释

功能测试 宏 值 标准 功能
__cpp_lib_ranges_reserve_hint 202502L (C++26) ranges::approximately_sized_range

示例

参见

指定范围能在常数时间内获知其大小
(概念)