• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

Iterator를 사용하는 이유가 무엇인가요?

23.09.14 22:04 작성 조회수 198

1

제가 생각해본 바로는, 추후 코드의 리팩토링 과정을 더 편하게 만들기 위해(?)같습니다. 많은 STL 의 컨테이너가 동일한 용법을 갖고 있으면 편할테니까요. 혹시 다른 이유가 더 있을까요?

답변 1

답변을 작성해보세요.

1

Soobak님의 프로필

Soobak

2023.09.15

안녕하세요, 답변 도우미 Soobak 입니다.

IteratorSTL 의 모든 컨테이너에 공통된 인터페이스를 제공한다는 장점이 가장 큰 장점이라고 생각합니다.

이러한 일관성 때문에 알고리즘을 작성할 때 특정 컨테이너에 종속되지 않을 수 있으며, 다양한 컨테이너에서 동일한 방식으로 데이터를 접근하고 순회할 수 있습니다.

또한, 각 컨테이너의 내부 자료 구조에 대한 정확한 지식이 없어도 데이터에 접근할 수 있으며, 컨테이너의 변경이 필요한 경우 (질문자님이 말씀해주신 리팩토링 과정의 편리함과 같은 맥락으로 설명되는 부분이라고 생각합니다.) 에도 코드의 대부분을 변경할 필요가 없게 됩니다.

그리고, std::sortstd::find 등과 같은 알고리즘 함수들은 여러 다양한 컨테이너의 Iterator 에 대해 동작하도록 설계되어 있으며, 사용자 정의 컨테이너를 만들 때에도 Iterator 을 구현함으로써, 해당 컨테이너가 STL 알고리즘과 호환될 수 있게 만들 수 있습니다.

그 밖에도, Iterator 은 굉장히 다양한 장점들이 있습니다.