const_iteratorの意味を理解しようとしています。次のサンプルコードがあります。
void CustomerService::RefreshCustomers()
{
for(std::vector<Customer*>::const_iterator it = customers_.begin();
it != customers_.end() ; it ++)
{
(*it)->Refresh();
}
}
Refresh()
クラス内のメソッドであり、Customer
constとして定義されていません。最初は、const_iteratorがコンテナの要素への変更を許可しないことになっていると思いました。ただし、このコードは文句なしにコンパイルされます。これは、余分なレベルの間接参照が行われているためですか?const_iteratorは正確には何を意味しますか?
アップデート
そして、このような状況では、const_iteratorを使用するのがベストプラクティスですか?