
주소값을 바로 반환하지는 못하며 &*를 통해 한단계 더 거쳐서 가리키는 해당 요소의 주소값을 반환할 수 있다.
#include <bits/stdc++.h>
using namespace std;
vector<int> v;
int main() {
for (int i = 1; i <= 5; i++)
v.push_back(i);
for (int i = 0; i < 5; i++) {
cout << i << "번째 요소: " << *(v.begin() + i) << "\n";
cout << &*(v.begin() + i) << '\n';
}
for (auto it = v.begin(); it != v.end(); it++) {
cout << *it << ' ';
}
cout << '\n';
for (vector<int>::iterator it = v.begin(); it != v.end(); it++) {
cout << *it << ' ';
}
auto it = v.begin();
advance(it, 3);
cout << '\n';
cout << *it << '\n';
return 0;
}

vector<int>:: iterator를 auto로도 간단히 선언할 수 있다.
이터레이터의 함수 중 많이 쓰이는 함수는 begin(), end(), advance()가 있다.
컨테이너의 시작 위치를 반환한다.
컨테이너의 끝 다음의 위치를 반환하는 데 사용된다.
it != v.end() 이런 식의 코드는 컨테이너를 다 순회하고 컨테이너의 끝에 도착했다는 것을 가리킨다.
해당 iteratorfmf cnt까지 증가시킨다.
delete를 통해 포인터를 제거할 수 있다.이터레이터는 컨테이너의 구조나 컨테이너 안에 들어가 있는 요소의 타입과는 상관없이 컨테이너에 저장된 데이터를 순회하는 과정을 담당한다. 즉, 각각의 다른 요소들을 쉽게 탐색할 수 있게 “일반화”한 장치이다.