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