C++ 레퍼런스
std::begin, std::end
std::cbegin, std::cend
요약
기본 배열 타입은 자동으로 알맞은 iterator를 만들어 되돌려 줍니다.
그 외에는 인자로 받은 객체의 동일한 이름의 메서드를 호출합니다.
즉, 알맞은 메서드가 정의되어 있다면 사용자 정의 클래스도 인자로 넘겨 줄 수 있습니다.
설명
std::begin 은 처음 원소의 주소를, std::end 는 마지막 원소의 다음 주소를 가리키는 iterator를 만들어 반환합니다.
std::cbegin, std::cend 는 각각 std::begin 과 std::end 의 동일한 주소를 가리키는 const_iterator를 반환합니다.
std::begin 이상, std::end 미만 범위 이외의 값을 읽거나 쓰는건 정의되지 않은 행동(undefined behaviour) 입니다.
예시 코드:
#include <iostream>
#include <vector>
#include <iterator>
int main()
{
std::vector<int> v = { 3, 1, 4 };
std::cout << *std::begin(v) << " " << *v.begin() << std::endl;
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
}
출력:
3 3
3 1 4
'C++ > 레퍼런스(Reference)' 카테고리의 다른 글
C++ STL: std::rbegin, std::rend, std::crbegin, std::crend (0) | 2020.11.01 |
---|---|
C++ Reference: std::integer_sequence, std::index_sequence (0) | 2020.10.29 |