std::ranges::cend
| 定义于头文件 <ranges>
|
||
| 定义于头文件 <iterator>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */ cend = /* unspecified */;
}
|
(自 C++20 起) (定制点对象) |
|
| 调用签名 |
||
template< class T >
requires /* see below */
constexpr /* see below */ auto cend( T&& t );
|
(自 C++20 起) | |
返回一个哨位 用于常量迭代器(自 C++23 起) 指示一个 const 限定(直到 C++23) 范围的结尾。
|
令
对 |
(直到 C++23) |
|
如果实参是左值或
在所有其他情况下,对 |
(自 C++23 起) |
如果 ranges::cend(e) 对表达式 e 有效,其中 decltype((e)) 是 T,则 CT 满足 std::ranges::range,并且(直到 C++23) std::sentinel_for<S, I> 在所有情况下均为 true,其中 S 是 decltype(ranges::cend(e)),且 I 是 decltype(ranges::cbegin(e))。 此外,S 满足 constant-iterator 如果它满足 input_iterator。(自 C++23 起)
定制点对象
名称
ranges::cend
表示一个
定制点对象
,它是一个常量
函数对象
,具有
字面量
类型的
semiregular
类类型。详情请参阅
定制点对象
。
示例
#include <algorithm> #include <cassert> #include <ranges> #include <vector> int main() { std::vector vec{3, 1, 4}; int arr[]{5, 10, 15}; assert(std::ranges::find(vec, 5) == std::ranges::cend(vec)); assert(std::ranges::find(arr, 5) != std::ranges::cend(arr)); }
另见
(C++20) |
返回指示范围结尾的哨兵 (定制点对象) |
(C++11)(C++14) |
返回指向容器或数组末尾的迭代器 (函数模板) |