C++

[C++] reverse_iterator 컨테이너 구현

다크엔지니어 2022. 2. 20. 20:35
반응형

역방향 반복자라고 하며,

기본 iterator에 반복자 어댑터 reverse_iterator 를 이용해 정방향 반복자를 역방향 반복자로 변환할 수 있다.

 

sort, for_each 를 확인해 보고, 그 결과를 비교해 볼 것이다.

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int FSort(int nVal, int nVal2)
{
	return (nVal > nVal2);
}

void FPrint(int nVal)
{
	cout << nVal << endl;
}

int main(void)
{
	vector<int> vecVal;

	vecVal.push_back(10);
	vecVal.push_back(49);
	vecVal.push_back(5);
	vecVal.push_back(14);
	vecVal.push_back(1);


	//sort(vecVal.begin(), vecVal.end());
	sort(vecVal.begin(), vecVal.end(), FSort);
	for_each(vecVal.begin(), vecVal.end(), FPrint);

	reverse_iterator<vector<int>::iterator> rBegin(vecVal.end());
	reverse_iterator<vector<int>::iterator> rEnd(vecVal.begin());

	for (; rBegin != rEnd; ++rBegin)
	{
		cout << *rBegin << endl;
	}

	getchar();


	return 1;
}
반응형