Я пытаюсь понять, что 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?