Während über einen Vektor in C++ Iterieren, bemerkte ich, gibt es eine begin()
Funktion in der Standard-Bibliothek, und auch ein begin()
als Memberfunktion der Klasse vector
. Was, wenn überhaupt, ist der Unterschied zwischen den beiden, und welche sollten gegenüber der anderen verwendet werden?Unterschied zwischen Vektor :: begin() und std :: begin()
Beispiel:
vector<int> numbers;
//Code to put values in my vector
for (vector<int>::iterator i = numbers.begin(); i < numbers.end(); i++)
cout << *i << '\n';
vs:
vector<int> numbers;
//Code to put values in my vector
for (vector<int>::iterator i = std::begin(numbers); i < std::end(numbers); i++)
cout << *i << '\n';
für Container sie gleich sind. Aber "std :: begin" funktioniert auch für eingebaute Arrays, was sehr nützlich in Template-Funktionen ist. – texasbruce
OT, aber '++ i' ist wahrscheinlich effizienter als' i ++ ', da letzterer einen Iterator mit dem Wert –
zurückgibt. Mögliches Duplikat von [Wann std :: begin und std :: end anstelle von containerspezifischen Versionen] (http : //stackoverflow.com/questions/8452130/when-to-use-stdbegin-and-stdend-instead-of-container-specific-versions) – edmz