iterator von einem const vector
-
Hi.
Ich lern grad C++ und bin in der Übung 3.25 im C++ Primer auf ein kleines Problem gestossen.
Gegeben ist folgende Funktionsdeklaration:bool is_equal(const int *ia, int ia_size, const vector<int> &ivec)
Die Funktion an sich ist recht einfach. Das Array und der vector werden elementweise verglichen. Jedoch soll der vector mit einem Iterator durchlaufen werden. Schreib ich nun einfach
vector<int>::iterator it = ivec.begin();
meckert er darüber, dass er 'const int' nicht in 'int' casten könnte. Lass ich das 'const' in der Funktionsdeklaration weg, funktioniert die Funktion, aber dann könnte die Funktion den vector ja auch verändern, was ja eben nich sein darf. Gibts noch einen anderen Weg, den Iterator auf den Vector zu bekommen?
-
nimm einen const_iterator
Denn ein iterator darf das Objekt aendern, auf das er 'zeigt' (zB erase()) ein const_iterator kann das nicht. Also ist ein const_iterator genau das richtige um durch const Objekte zu iterieren