在c++中迭代vector时,我注意到标准库中有一个begin()
函数,而vector
类也有一个begin()
成员函数。这两者有什么区别(如果有的话),应该使用哪个?
示例:
vector<int> numbers;
//Code to put values in my vector
for (vector<int>::iterator i = numbers.begin(); i < numbers.end(); i++)
cout << *i << '\n';
对比:
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';
std::begin
也适用于内置数组,在模板函数中非常有用。 - SwiftMango++i
可能比i++
更高效,因为后者会返回一个迭代器的副本。 - M.M