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 概念规定了可通过 reserve_hint 函数在常数时间内估算其大小的 range 类型的要求。

目录

语义要求

给定类型为 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

示例

参见

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