Const Keyword

Clear·2023년 6월 16일
0

< ✔ > Note : const_iterator

std::vector<int> vec;
const std::vector::iterator iter = vec.begin();
// iter 는 T * const 처럼 동작한다.
*iter = 10;
++iter; // Error

std::vector::const_iterator cIter = vec.begin();
// cIter 는 const T * 처럼 동작한다.
*cIter = 10; // Error
++cIter;

Iterator 는 Pointer 를 본 뜬 것이기 때문에 기본적인 동작 원리가 T* 와 흡사하여
const 로 선안한다는 것은 Pointer 를 상수로 선언하는 것과 같다.
Iterator 가 자신이 카리키는 대상이 아닌 것을 가리키는 경우가 허용되지 않지만,
가리키는 대상 자체를 변경이 가능하다.
변경 불가능한 Object 를 가리키는 Iterator 가 필요하다면 const_iterator 를 사용하자.

profile
GameProgrammer

0개의 댓글