Podczas iteracji na wektorze w C++, zauważyłem, że jest funkcja begin()
w standardowej bibliotece, a także begin()
jako funkcja składowa klasy vector
. Co, jeśli w ogóle, stanowi różnicę między tymi dwoma, a które należy stosować w stosunku do innych?Różnica między wektorami :: begin() i std :: begin()
przykład:
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';
do pojemników są one takie same. Ale 'std :: begin' działa również dla wbudowanych tablic, co jest bardzo przydatne w funkcjach szablonów. – texasbruce
OT, ale '++ i' jest prawdopodobnie bardziej wydajne niż' i ++ 'ponieważ ten drugi zwraca iterator o wartość –
możliwy duplikat [Kiedy używać std :: begin i std :: end zamiast wersji specyficznej dla kontenera] (http : //stackoverflow.com/questions/8452130/when-to-use-stdbegin-and-stdend-instead-of-container-specific-versions) – edmz