C++ iterator

NYH·2023년 12월 9일

C++

목록 보기
16/17

Iterator

Iterator란?

컨테이너의 요소에 대한 반복적인 액세스를 제공하는 개체입니다.
Iterator는 일반적으로 포인터와 유사한 인터페이스를 제공하고 컨테이너의 요소를 하나씩 참조할 수 있도록 도와줍니다.
배열, 리스트, 벡터, 맵, 세트 등과 같은 다양한 데이터 구조에서 반복 작업을 수행하는데 사용됩니다.


Iterator 연산자 (Itertator Operator)

  • 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가 현재 컨테이너 요소에서 이전 요소로 이동합니다.


문제

문제 1.

iterator 에서 사용되는 연산자 *, ++, --, ==, !=, = 에 대해서 설명해주세요.

profile
그냥 해라

0개의 댓글