Sto cercando di capire cosa significa const_iterator. Ho il seguente codice esempio:Informazioni su const_iterator con i puntatori?
void CustomerService::RefreshCustomers()
{
for(std::vector<Customer*>::const_iterator it = customers_.begin();
it != customers_.end() ; it ++)
{
(*it)->Refresh();
}
}
Refresh()
è un metodo nella classe Customer
e non è definito come const. Inizialmente pensavo che il const_iterator avrebbe dovuto impedire la modifica degli elementi del contenitore. Tuttavia, questo codice viene compilato senza lamentarsi. È perché c'è un livello extra di indirezione in corso? Che cosa fa esattamente const_iterator/mean?
UPDATE
E in una situazione come questa, è buona norma usare const_iterator?
"modifica" significherebbe "* it = some_other_thing", che non è quello che stai facendo. –