可能重复:
为什么使用迭代器而不是数组索引?
我正在回顾我对 C++ 的了解,并且偶然发现了迭代器。我想知道的一件事是是什么让它们如此特别,我想知道为什么会这样:
using namespace std;
vector<int> myIntVector;
vector<int>::iterator myIntVectorIterator;
// Add some elements to myIntVector
myIntVector.push_back(1);
myIntVector.push_back(4);
myIntVector.push_back(8);
for(myIntVectorIterator = myIntVector.begin();
myIntVectorIterator != myIntVector.end();
myIntVectorIterator++)
{
cout<<*myIntVectorIterator<<" ";
//Should output 1 4 8
}
比这更好:
using namespace std;
vector<int> myIntVector;
// Add some elements to myIntVector
myIntVector.push_back(1);
myIntVector.push_back(4);
myIntVector.push_back(8);
for(int y=0; y<myIntVector.size(); y++)
{
cout<<myIntVector[y]<<" ";
//Should output 1 4 8
}
是的,我知道我不应该使用 std 命名空间。我刚刚从 cprogramming 网站上拿了这个例子。那么你能告诉我为什么后者更糟吗?有什么大的区别?