Что такое const_iterator с указателями?

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

5
задан User 5 November 2011 в 00:00
поделиться