Effectvie C++ 第1章3項
STLのiteratorでのconstの場合。iteratorの宣言にconstを付けるとiterator自体がconstとなり、参照先のデータはconstとはならず変更できる。
std::vector<int> v; const std::vector<int>::iterator p = v.begin(); *p = 123; // これはOK p++; // これはできない
参照先のデータを変更できないようにconstとするにはconst_iteratorを使う。
std::vector<int> v; std::vector<int>::const_iterator p = v.begin(); *p = 123; // これはできない p++; // これはOK