array::end
array::end (끝 뒤를 가리키는 반복자 얻기)
배열의 마지막 원소 다음 위치를 가리키는 반복자를 반환하는 멤버 함수예요. 읽기 전용 버전인 cend도 함께 있어요. 상수 시간에 동작해요. C++11부터 있어요.
출처: cppreference
본문
end()는 마지막 원소의 다음 위치를 가리키는 반복자(placeholder)를 돌려줘요.
iterator end() noexcept; // (1)
const_iterator end() const noexcept; // (2)
const_iterator cend() const noexcept; // (3)
이 반복자는 자리 표시자 역할만 해요. 그 자리에 접근하려 하면 미정의 동작이 돼요. 반환 값은 마지막 원소 다음을 가리키는 반복자이고, 복잡도는 상수 시간이에요.
반복자 기반 순회에서 끝 조건을 검사하는 용도로 쓰이죠.
for (auto it = numbers.begin(); it != numbers.end(); ++it) { /* ... */ }
빈 배열(std::array<int, 0>)에서는 end()가 begin()과 같아져요. cend()는 상수 반복자라서 요소를 수정하지 않고 순회할 때 안전해요. C++17부터 constexpr로 지정돼 컴파일 타임에도 쓸 수 있어요.
begin()/end()를 짝으로 해서 반 개방 구간 [begin, end)을 표현하는 게 C++ 컨테이너의 표준 관례예요. 그 마지막 지점이 바로 end()예요.