std::ranges:: cbegin
|
헤더에 정의됨
<ranges>
|
||
|
헤더에 정의됨
<iterator>
|
||
|
inline
namespace
/* unspecified */
{
inline
constexpr
/* unspecified */
cbegin
=
/* 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::cbegin
이름은
커스터마이제이션 포인트 객체
를 나타내며, 이는
함수 객체
의 const
리터럴
semiregular
클래스 타입입니다. 자세한 내용은
CustomizationPointObject
를 참조하십시오.
참고 사항
lvalue 범위 e (타입 T )에 대해, ranges :: cbegin ( e ) 는 다음과 동일합니다
|
ranges:: begin ( std:: as_const ( e ) ) . |
(C++23 이전) |
|
(C++23 이후) |
예제
#include <cassert> #include <ranges> #include <vector> int main() { std::vector v{3, 1, 4}; auto vi = std::ranges::cbegin(v); assert(3 == *vi); ++vi; // OK, 상수 반복자 객체는 변경 가능함 assert(1 == *vi); // *vi = 13; // 오류: 상수 반복자는 불변 요소를 가리킴 int a[]{3, 1, 4}; auto ai = std::ranges::cbegin(a); // cbegin은 C-배열에서도 작동함 assert(3 == *ai and *(ai + 1) == 1); // *ai = 13; // 오류: 읽기 전용 변수에 할당할 수 없음 }
참고 항목
|
(C++20)
|
범위의 시작 부분을 가리키는 반복자를 반환합니다
(커스터마이제이션 포인트 객체) |
|
(C++11)
(C++14)
|
컨테이너나 배열의 시작 부분을 가리키는 반복자를 반환합니다
(함수 템플릿) |