반응형
[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 << " ";
반응형
'Programming > C, C++' 카테고리의 다른 글
C++ STL 컨테이너 Vector의 재할당 확인하기 (0) | 2022.12.11 |
---|---|
C++ STL List의 저장 공간 (0) | 2022.12.11 |
C++ STL 컨테이너(Container) 사용법 (0) | 2022.12.11 |
C++ STL(Standard Template Library)란? (0) | 2022.12.11 |
C++ Vector 선언 및 초기화 (0) | 2022.12.08 |