std::ranges:: crbegin
|
헤더에 정의됨
<ranges>
|
||
|
헤더에 정의됨
<iterator>
|
||
|
inline
namespace
/* unspecified */
{
inline
constexpr
/* unspecified */
crbegin
=
/* unspecified */
;
|
(C++20 이후)
(커스터마이제이션 포인트 객체) |
|
|
호출 시그니처
|
||
|
template
<
class
T
>
requires
/* see below */
|
(C++20 이후) | |
|
const 한정자로 수식된 인자를 역순 시퀀스로 처리했을 때 첫 번째 요소를 가리키는 반복자를 반환합니다. |
(until C++23) |
|
인자를 역순 시퀀스로 처리했을 때 첫 번째 요소를 가리키는 상수 반복자를 반환합니다. |
(since C++23) |
|
|
(C++23 이전) |
|
인수가 lvalue이거나
ranges::
enable_borrowed_range
<
std::
remove_cv_t
<
T
>>
가
true
인 경우,
다른 모든 경우에서
|
(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)
|
컨테이너나 배열의 시작 부분에 대한 역방향 반복자를 반환합니다
(함수 템플릿) |