- vector::iterator
- vector::const_iterator
- const vector::iterator
- const vector::const_iterator
위의 반복자들을 비교 설명한다.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
int arr[5] = { 10, 20, 30, 40, 50 };
v.push_back(10);
v.push_back(20);
v.push_back(30);
v.push_back(40);
v.push_back(50);
vector<int>::iterator iter = v.begin();
// iter는 p처럼 동작
int* p = arr;
cout << *iter << ", " << *p << endl;
vector<int>::const_iterator citer = v.begin();
// citer는 cp처럼 동작
const int* cp = arr;
cout << *citer << ", " << *cp << endl;
const vector<int>::iterator iter_const = v.begin();
// iter_const는 p_const처럼 동작
int* const p_const = arr;
cout << *iter_const << ", " << *p_const << endl;
const vector<int>::const_iterator citer_const = v.begin();
// citer_const는 cp_const처럼 동작
const int* const cp_const = arr;
cout << *citer_const << ", " << *cp_const << endl;
return 0;
}
- vector::iterator iter;
- iter는 다음 원소로 이동 가능하고 원소의 변경이 가능한 반복자이다.
- vector::const_iterator citer;
- citer는 다음 원소로 이동 가능하고 원소의 변경이 불가능한 반복자이다.
- const vector::iterator iter_const;
- iter_const는 다음 원소로 이동이 불가능하고 원소의 변경이 가능한 반복자이다.
- const vector::const_iterator citer_const;
- citer_const는 다음 원소로 이동이 불가능하며 원소의 변경이 불가능한 반복자이다.
포인터와 연결해 보면, 어렵지 않게 이해할 수 있다. 사실 iterator와 const_iterator만을 주로 사용하므로 이 두 반복자만 알고 있어도 된다.
Top comments (0)