우선 반복자간의 변환가능성을 보면
- iterator는 모든 다른 반복자로 변환이 가능하다.
- reverse 반복자류는 해당하는 종류의 반복자로 base() 맴버함수를 통해 변환이 가능하다.
(reverse_iterator -> iterator, const_reverse_iterator -> const_iterator )
- reverse_iterator는 const_reverse_iterator 로 변환이 가능한다.
- 어떤 형태의 insert와 erase 멤버함수는 무조건 iterator 만을 넘겨야 한다.
- const_iterator 를 iterator로 암시적으로 변환하는 방법은 없고 굳이 바꾸자면 EffectiveSTL27의 내용을 참조한다. 하지만 일반성도 떨어지고 효율에 대한 보장도 할수 없다.
- reverse_iterator를 iterator로 변환할수 있으나, 변환후 약간의 조정이 필요하다. 자세한 내용은 EffectiveSTL28을 참고한다.
물론 const나 reverse는 STL에서 버그를 예방하고 유용하게 쓰이는 면이 있으므로 제한 상황을 잘알아두는 것이 좋다.