array::rend

array::rend (역방향 끝 뒤 반복자 얻기)

역방향 배열에서 마지막 원소의 다음(자리 표시자)을 가리키는 역방향 반복자를 반환하는 멤버 함수예요. 상수 시간에 동작해요. C++11부터 있어요.

출처: cppreference

본문

rend()는 역방향 배열의 마지막 원소 다음을 가리키는 역방향 반복자(placeholder)를 돌려줘요.

reverse_iterator rend() noexcept;                    // (1)

const_reverse_iterator rend() const noexcept;        // (2)

const_reverse_iterator crend() const noexcept;       // (3)

이 위치는 뒤집기 전 배열의 첫 원소 에 해당해요. 자리 표시자라서 그 자리에 접근하려 하면 미정의 동작이 돼요.

  • 반환 값: 마지막 원소 다음을 가리키는 역방향 반복자.
  • 복잡도: 상수 시간.

역방향 순회의 끝 조건을 검사하는 데 쓰이죠.

std::array<int, 11> a{1, 11, 11, 35, 0, 12, 79, 76, 76, 69, 40};
std::for_each(a.crbegin(), a.crend(), [](int e){ std::cout << e << ' '; });

rbegin()이 역방향의 시작이라면 rend()는 역방향 순회가 끝나는 지점이에요. 둘을 짝으로 해서 [rbegin, rend) 구간으로 역방향 범위를 표현해요. crend()는 상수 반복자라 읽기 전용 순회에 안전하고, C++17부터 constexpr이에요.

더 알아보기 (Learn more)

cppreference