在C++中遍历一个向量时,我注意到标准库中有一个begin()
函数,并且还有一个begin()
作为vector
类的成员函数。如果有的话,两者之间的区别是什么,哪一个应该用于另一个?vector :: begin()和std :: 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';
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';
集装箱它们是相同的。但'std :: begin'也适用于内置数组,这在模板函数中非常有用。 – texasbruce 2014-10-10 01:01:19
OT,但'++ i'可能比'i ++'效率更高,因为后者通过值 – 2014-10-10 02:29:48
返回一个迭代器[当何时使用std :: begin和std :: end而不是容器特定版本](http ://stackoverflow.com/questions/8452130/when-to-use-stdbegin-and-stdend-instead-of-container-specific-versions) – edmz 2014-10-10 07:58:54