컨테이너의 요소에 대한 반복적인 액세스를 제공하는 개체입니다.
Iterator는 일반적으로 포인터와 유사한 인터페이스를 제공하고 컨테이너의 요소를 하나씩 참조할 수 있도록 도와줍니다.
배열, 리스트, 벡터, 맵, 세트 등과 같은 다양한 데이터 구조에서 반복 작업을 수행하는데 사용됩니다.
Operator * : Iterator를 역참조하면 Iterator가 현재 가리키는 요소를 반환합니다.Operator ++ : Iterator를 컨테이너의 다음 요소로 이동합니다.Operator -- : Iterator를 컨테이너의 이전 요소로 이동합니다.Operator == : 두 개의 Iterator가 동일한 요소를 가리키는지 여부를 결정하는 기본 비교 연산자입니다.Operator != : 두 개의 Iterator가 동일하지 않은 요소를 가리키는지 여부를 결정하는 기본 비교 연산자입니다.Operator = : Iterator를 새로운 위치에 할당할 때 사용하는 연산자입니다. 다른 위치에 재 할당도 가능합니다.std::vector<T>::iterator 사용 예시#include<vector>
#include<iostream>
int main()
{
std::vector<int> vec = { 1, 2, 3, 4, 5};
for (std::vector<int>::iterator iter = vec.begin(); iter != vec.end(); ++iter)
{
std::cout << *iter << std::endl;
}
for (std::vector<int>::iterator iter = vec.end()-1; iter != vec.start(); --iter)
{
std::cout << *iter << std::endl;
}
}
std::vector<int>::iterator iter = vec.begin(): 현재 vector컨테이너의 시작 부분을 Iterator에 할당합니다.
iter ! = vec.end(): 현재 iterator가 vector 컨테이너의 끝에 도달했는지 여부를 확인합니다.
++iter: iterator가 현재 컨테이너 요소에서 다음 요소로 이동합니다.
*iter: iterator가 컨테이너 요소를 역 참조해서 값을 가져옵니다.
-- iter: iterator가 현재 컨테이너 요소에서 이전 요소로 이동합니다.
iterator 에서 사용되는 연산자
*, ++, --, ==, !=, =에 대해서 설명해주세요.