본문 바로가기
Programming/C, C++

C++ STL 반복자(iterator) 사용법

by Dev_카페인 2022. 12. 11.
반응형

[C++/STL] 반복자(iterator) 사용법

iterator 는 포인터다.

컨테이너에 저장되어 있는 원소들을 공통적인 방법으로 하나씩 접근할 수 있게 해준다.

모든 컨테이너들은 iterator를 지원한다.

 

 

선언 방법

STL타입::iterator 이름;

vector<int>::iterator veciter;

vector::const_iterator veciter;

 

vector.begin() = 시작 주소를 가리킴

vector.end() = 제일 마지막 다음 값을 가리킴

#include <iostream>
#include <vector>
#include <deque>
#include <list>


using namespace std;

int main()
{
	vector<int> vec;
	deque<int> deq;
	list<int> _list;


	vector<int>::iterator vecIter;
	deque<int>::iterator deqIter;
	list<int>::iterator listIter;


	for (int i = 0; i < 10; i++)
	{
		vec.push_back(i);
		// Vector는 push_front 없음

		deq.push_back(i);
		deq.push_front(i);

		_list.push_back(i);
		_list.push_front(i);
	}

	for (vecIter = vec.begin(); vecIter != vec.end(); vecIter++)
	{
		cout << *vecIter << ", ";
	}
	cout << endl;
	for (deqIter = deq.begin(); deqIter != deq.end(); deqIter++)
	{
		cout << *deqIter << ", ";
	}
	cout << endl;
	for (listIter = _list.begin(); listIter != _list.end(); listIter++)
	{
		cout << *listIter << ", ";
	}
	cout << endl;
	for (auto iter : vec)
	{
		cout << iter << ", ";
	}
	cout << endl;
	for (auto& iter : vec)
	{
		cout << iter << ", ";
	}
	cout << endl;

	return 0;
}
while (itr != container.end())
	{
		cout << *itr << "  ";
		++itr;
	}
for (auto itr = container.begin(); itr != container.end(); ++itr)
		cout << *itr << "  ";
for (auto& itr : container)
		cout << itr << "  ";

 

반응형