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 )
-
- 具有均摊常数时间复杂度,
- 不会以 保等性 表达式可观测的方式改变 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)
|
指定范围能在常数时间内获知其大小
(概念) |