std::ranges:: approximately_sized_range
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | |||||||||||||||||||
|
|||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
|
定义于头文件
<ranges>
|
||
|
template
<
class
T
>
concept approximately_sized_range
=
ranges::
range
<
T
>
&&
|
(C++26 起) | |
approximately_sized_range
概念规定了可通过
reserve_hint
函数在常数时间内估算其大小的
range
类型的要求。
目录 |
语义要求
给定类型为
std::
remove_reference_t
<
T
>
的左值
t
,当且仅当满足以下条件时
T
才实现
approximately_sized_range
概念:
- ranges :: reserve_hint ( t )
-
- 具有均摊常数时间复杂度,
- 不会以 保等性 表达式可观测的方式改变 t 的值,且
- 其值为非负数且可表示为 ranges:: range_difference_t < 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 |
示例
|
本节内容不完整
原因:缺少示例 |
参见
|
(C++20)
|
指定范围能在常数时间内获知其大小
(概念) |