역방향 반복자는 순회 방향이 거꾸로 되어 있는 반복자이다.
reverse_iterator
const_reverse_iterator
위와 같이 선언할 수 있다.
컨테이너로부터 역방향 반복자를 얻을 때는 `rbegin`,`rend` 멤버 함수를 사용한다.
#include <iostream>
#include <vector>
int main(void)
{
int arr[] = {1, 2, 3, 4, 5};
std::vector<int> varr(&arr[0], &arr[5]);
std::vector<int>::reverse_iterator rit;
for (rit = varr.rbegin(); rit != varr.rend(); rit++)
std::cout << *rit;
return 0;
}
그리고 역방향 반복자는 원래의 순방향 반복자를 리턴하는 `base` 멤버 함수가 정의되어 있다.
위의 그림처럼 `rit`가 가리키고 있는 것보다 '한 칸 뒤'의 메모리 주소를 반환하는데 이는 `rbegin()`의 `base`가 `end`가 되도록 하기 위해서다.
[STL] 반복자(6) - 상수 반복자 (0) | 2023.08.23 |
---|---|
[STL] 반복자(5) - 속성 (0) | 2023.08.23 |
[STL] 반복자(4) - 임의 접근 반복자 (0) | 2023.08.23 |
[STL] 반복자(3) - 순방향, 양방향 반복자 (0) | 2023.08.23 |
[STL] 반복자(2) - 입출력 반복자 (0) | 2023.08.23 |