std::ranges::crbegin
| 헤더에 정의됨 <ranges>
|
||
| 헤더에 정의됨 <iterator>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */ crbegin = /* unspecified */;
}
|
(C++20부터) (사용자 정의점 객체) |
|
| 호출 시그니처 |
||
template< class T >
requires /* see below */
constexpr /* see below */ auto crbegin( T&& t );
|
(C++20부터) | |
|
const 한정 인자를 역순으로 처리했을 때 첫 번째 요소에 대한 반복자를 반환합니다. |
(C++23까지) |
|
인자를 역순으로 처리했을 때 첫 번째 요소에 대한 상수 반복자를 반환합니다. |
(C++23부터) |
|
|
(C++23까지) |
|
인자가 lvalue이거나
다른 모든 경우, |
(C++23부터) |
반환 타입은 모든 경우에 std::input_or_output_iterator 및 constant-iterator(C++23부터)를 모델링합니다.
커스터마이제이션 포인트 객체
ranges::crbegin
이름은
커스터마이제이션 포인트 객체
를 나타내며,
이는
함수 객체
의
리터럴
semiregular
클래스 타입의 const 객체입니다. 자세한 내용은
CustomizationPointObject
를 참조하십시오.
예제
#include <cassert> #include <iterator> #include <span> #include <vector> int main() { std::vector<int> v{3, 1, 4}; auto vi = std::ranges::crbegin(v); assert(*vi == 4); ++vi; // OK, iterator object is mutable assert(*vi == 1); // *vi = 13; // Error: underlying element is read-only int a[]{-5, 10, 15}; auto ai = std::ranges::crbegin(a); assert(*ai == 15); // auto x_x = std::ranges::crbegin(std::vector<int>{6, 6, 6}); // ill-formed: the argument is an rvalue (see Notes ↑) auto si = std::ranges::crbegin(std::span{a}); // OK assert(*si == 15); static_assert ( std::ranges::enable_borrowed_range<std::remove_cv_t<decltype(std::span{a})>> ); }
참고 항목
|
(C++20)
|
범위에 대한 역방향 반복자를 반환합니다
(커스터마이제이션 포인트 객체) |
|
(C++14)
|
컨테이너나 배열의 시작 부분에 대한 역방향 반복자를 반환합니다
(함수 템플릿) |