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()예요.

더 알아보기 (Learn more)

cppreference