array::begin
array::begin (첫 원소를 가리키는 반복자 얻기)
배열의 첫 번째 원소를 가리키는 반복자를 반환하는 멤버 함수예요. 읽기 전용 버전인 cbegin도 함께 제공돼요. 상수 시간에 동작해요. C++11부터 있어요.
출처: cppreference
본문
begin()은 첫 원소를 가리키는 반복자를 돌려주고, cbegin()은 상수 반복자를 돌려줘요.
iterator begin() noexcept; // (1)
const_iterator begin() const noexcept; // (2)
const_iterator cbegin() const noexcept; // (3)
배열이 비어 있다면 반환된 반복자는 end()와 같아요. 반환 값은 첫 원소를 가리키는 반복자이고, 복잡도는 상수 시간이에요.
범위 기반 for 문과 함께 쓰는 게 가장 흔한데, 내부적으로 begin()/end()가 호출되기 때문이에요.
std::array<int, 4> numbers{1, 2, 3, 4};
for (int n : numbers) { /* ... */ }
begin()이 반환하는 반복자는 읽기/쓰기 모두 가능한데, cbegin()은 상수 반복자라 읽기만 가능해요. 그래서 원소를 수정하지 않고 순회만 하려면 cbegin()을 쓰면 안전해요. C++17부터 constexpr로 지정됐기 때문에 컴파일 타임 계산에도 활용할 수 있어요.
빈 배열에서의 비교(empty.begin() == empty.end())와 같이, 0-길이 std::array의 시작/끝 반복자가 같다는 점을 활용하는 패턴도 자주 보이죠.