vector Iterator?
-
Hallo,
habe eine Schleife und benutze dazu einen vector Iterator.
std::vector< std::vector<QString> >::iterator it = v1.begin();
Aber wie beginne ich jetzt beim zweiten oder dritten Element?
In der Dokumentation habe ich nur begin() und end() gesehen. Aber wie bei einem beliebigen Element anfangen?
Entschuldigung, dass ich solche Anfängerfragen stelle, aber irgendwie muss ich das ja lernen.
-
std::next()
Siehe: http://en.cppreference.com/w/cpp/iterator/next
Siehe dort auch die Verweise auf prev(), bzw. advance().
Glückauf!
-
iterator nthElement = v1.begin()+(n-1);
-
Würde folgendes auch funktionieren?
++Iterator
mfg
-
hardware schrieb:
Würde folgendes auch funktionieren?
++Iterator
mfg
Ja, du schiebst den Iterator ja auch in einer for Schleife immer weiter, allerdings muss der Iterator vorher auf den vector gesetzt worden sein.
Bsp.:
vector<int> vec; vector<int>::iterator it; for (it=vec.begin(); it != vec.end(); ++it) { //code }
Es geht :
it = it + 5;
std::advance (it,5);e.g.:
Next: http://www.cplusplus.com/reference/iterator/next/
Advance: http://www.cplusplus.com/reference/iterator/advance/?kw=advanceAnd:
http://stackoverflow.com/questions/15017065/whats-the-difference-between-stdadvance-and-stdnextBei vectoren kannst du den vector bzw. den iterator direkt mit index setzen. Bei der STL-List geht das nicht.
-
Hallo,
vielen Dank für die Einsichten
mfg
-
Danke auch von mir für die schnelle Antwort.