std::ranges::crend
| 定义于头文件 <ranges>
|
||
| 定义于头文件 <iterator>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */ crend = /* unspecified */;
}
|
(自C++20起) (定制点对象) |
|
| 调用签名 |
||
template< class T >
requires /* see below */
constexpr /* see below */ auto crend( T&& t );
|
(自C++20起) | |
返回一个哨位用于常量迭代器(自C++23起)指示一个被当作反转序列处理的const限定(至C++23)范围的结尾。
|
令
调用 |
(至C++23) |
|
如果参数是左值或
在所有其他情况下,调用 |
(自C++23起) |
如果对于表达式 ranges::crend(e),e 是有效的,其中 decltype((e)) 是 T,则 CT 满足 std::ranges::range,并且(至C++23) std::sentinel_for<S, I> 在所有情况下都是 true,其中 S 是 decltype(ranges::crend(e)),且 I 是 decltype(ranges::crbegin(e))。 此外,S 满足 constant-iterator 如果它满足 input_iterator。(自C++23起)
定制点对象
名称
ranges::crend
表示一个
定制点对象
,它是一个常量
函数对象
,具有
字面量
的
semiregular
类类型。详情请参阅
定制点对象
。
示例
#include <algorithm> #include <iostream> #include <iterator> #include <vector> int main() { int a[]{4, 6, -3, 9, 10}; std::cout << "Array backwards: "; namespace ranges = std::ranges; ranges::copy(ranges::rbegin(a), ranges::rend(a), std::ostream_iterator<int>(std::cout, " ")); std::cout << '\n'; std::cout << "Vector backwards: "; std::vector v{4, 6, -3, 9, 10}; ranges::copy(ranges::rbegin(v), ranges::rend(v), std::ostream_iterator<int>(std::cout, " ")); std::cout << '\n'; }
输出:
Array backwards: 10 9 -3 6 4 Vector backwards: 10 9 -3 6 4
参见
|
(C++20)
|
返回指向范围的反向末端迭代器
(定制点对象) |
|
(C++14)
|
返回容器或数组的反向末端迭代器
(函数模板) |