迭代器比数组[i]快吗?

nav*_*and 1 c++ arrays iterator arrayiterator

可能重复:
为什么使用迭代器而不是数组索引?

因为在我的生活中,我无法弄清楚它们是多么多余.

vector<string>::iterator iter1
vector<string>::const_iterator iter2
Run Code Online (Sandbox Code Playgroud)

也许他们更快?

Pup*_*ppy 7

迭代器的目的不是更快,它们的目的是速度快,而且更加通用.array[i]仅对数组有效 - 不是链表.


use*_*116 6

迭代器允许开发容器无关的算法.这样的事情std::sort并不一定要关心它是否是一个vectoryour_datastructure_here只要它满足适当的迭代器要求.

考虑在查找最大list,vector或裸阵列.

int A[...];         // ...some array
std::list<int> L;   // ...some list
std::vector<int> V; // ...some vector

int* maxA                       = std::max_element(A, A + 10);
std::list<int>::iterator maxL   = std::max_element(L.begin(), L.end());
std::vector<int>::iterator maxV = std::max_element(V.begin(), V.end());
Run Code Online (Sandbox Code Playgroud)