상세 컨텐츠

본문 제목

[STL] 반복자(7) - 역방향

C++/C++ STL

by deulee 2023. 8. 23. 17:05

본문

역방향 반복자는 순회 방향이 거꾸로 되어 있는 반복자이다.

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`가 되도록 하기 위해서다.

 

 

관련글 더보기