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 以上) | |
const イテレータのセンチネルを返します (C++23 以上) 逆順シーケンスとして扱われるレンジの終端を示します。なお、C++23 未満では const 修飾された レンジに対してのみ動作します。
|
|
(C++23 未満) |
|
引数が左辺値であるか、または
と等価です。
|
を引き起こす可能性があります。 |
(C++23 以上)ranges::crend(e)e が式 decltype((e)) に対して有効である場合、ただし T は CT であり、 は std::ranges::range をモデル化し、 std::sentinel_for<S, I>(C++23 未満)trueS はすべての場合において decltype(ranges::crend(e)) であり、ただし I は decltype(ranges::crbegin(e)) であり、 は S です。 constant-iterator さらに、 は input_iterator をモデル化する場合、
カスタマイゼーションポイントオブジェクト
名前
ranges::crend
は
カスタマイゼーションポイントオブジェクト
を表し、これは
関数オブジェクト
のconst版で、
リテラル型
semiregular
クラス型である。詳細は
CustomizationPointObject
を参照。
例
#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)
|
コンテナまたは配列に対する逆方向終端イテレータを返す
(関数テンプレート) |