C++

[C++] Iterator 반복자

programmer-faust 2025. 7. 10. 21:57
  • 순서
    1. 반복자란?
    2. 주요 기능 및 연산자
    3. Iterator 사용법
    4. auto 키워드
    5. 시간 복잡도
  • iterator 반복자란?
    1. iterator 반복자는 STL 컨테이너 내부 요소를 순회하는데 사용되는 객체이다.
    2. 배열의 인덱스를 직접 사용하는 대신, iterator를 활용하면 더 범용적인 코드 작성이 가능함
    3. iterator의 역할
      • 컨테이너 내 원소 순회
      • 원소 삽입, 삭제, 변경
      • 반복 구조 최적화
    4. iterator의 원리
      • 포인트와 유사한 방식으로 작동, 하지만 단순한 메모리 주소가 아닌 컨테이너 요소를 안전하게 조작할 수 있는 인터페이스를 제공함.
    5. 주의사항
      • iterator가 end()를 초과하여 접근하지 않도록 해야함
      • iterator가 유효한 범위를 유지하는지 신경 써야함
      • iterator를 활용할 때 컨테이너가 변경되면, 무효화된 반복자를 사용하지 않도록 해야함
  • 주요 기능 및 연산자
    1. begin(): 컨테이너의 첫 번째 원소를 가리키는 반복자를 반환
    2. end(): 컨테이너의 마지막원소 다음 위치를 가리키는 반복자를 반환
    3. 전위 후위 연산자 it: 반복자를 이전 또는 다음 요소로 이동
    4. *it: 반복자가 가리키는 요소 접근
  • iterator 사용법
    1. vector 순회
    2. list 순회
    3. map 순회
  • auto 키워드
    1. auto 키워드는 C++ 11부터 추가됨
    2. auto 키워드는 타입을 자동으로 추론해주기 때문에 직접 타입을 명확히 작성해서 iterator를 선언 해야 하는 번거로움이 줄고, 가독성을 높이는 역할을 함.
    3. auto 키워드의 장점
      • 코드 가독성 향상
      • 유지보수 용이: 컨테이너의 타입이 변경되더라도 auto는 타입을 자동추론하기 때문에 선언을 수정할 필요가 없음
      • 복잡한 타입 생략 가능: 타입 자동추론을 통해 타입을 명확히 작성하지 않아도 됨.
  • 시간 복잡도
  • 연산 시간 복잡도
    begin(), end() O(1)
    전위 후위연산자 it O(1)
    *it O(1)

'C++' 카테고리의 다른 글

[C++] 시프트 연산자  (0) 2025.07.15
[C++] is-a/has-a 관계  (0) 2025.07.14
[C++]Alogorithm헤더파일  (1) 2025.07.08
[C++] <sstream>헤더파일  (0) 2025.07.04
[C++]객체 지향 프로그래밍 OOP 4가지 특징  (0) 2025.07.03