10월 21, 2016

const iterator VS const_iterator


  • const iterator
  • const iterator는 iterator를 const로 만듦. iterator는 멤버 필드로 pointer를, 멤버 메소드로 operator++(..), operator+(..) 등의 연산을 가지고 있는 클래스. 이 클래스의 인스턴스에 const를 붙이면 인스턴스 내용을 수정할 수 없게 되므로, 멤버 필드인 pointer를 수정할 수 없게 됨. 즉, const iteratoroperator++(..), operator+ 와 같은 멤버 연산 실행이 불가능. 따라서 container 안에 있는 자료 중 딱 그 하나의 자료만 수정할 때, const iterator를 사용함.

  • const_iterator
  • const_iterator는 클래스 내부의 멤버 필드 pointer가 가르키는 대상의 내용(*pointer)을 수정하는 것을 막기 위해 만든, iterator와는 다른 목적을 가진 클래스. 따라서 const_iteratoroperator++operator+(..) 등 연산을 자유롭게 할 수 있음. container의 자료를 읽기만 가능하게 하려할 때 사용.


요약

  • const iterator : container 안에서 딱 하나의 자료만 수정하려할 때 사용.
  • const_iterator : container 안의 자료들을 읽기 전용으로 불러올 때 사용.

reference

댓글 없음:

댓글 쓰기