C++:迭代向量的各种方法的用例 自从我最近开始使用C++ STL库,所以我发现有很多方法来迭代向量,其中一些是::

C++:迭代向量的各种方法的用例 自从我最近开始使用C++ STL库,所以我发现有很多方法来迭代向量,其中一些是::,c++,vector,iteration,C++,Vector,Iteration,所以我的问题是,哪种方法是最有效的方法,以及何时使用其余的方法?两者都不是。您应该改用: 如果您正在遍历一个向量,并且实际上不需要存储任何索引,那么另一个答案中提到的索引就足够了。如果您确实关心索引,那么最好的方法可能是使用int i=0的标准;i

所以我的问题是,哪种方法是最有效的方法,以及何时使用其余的方法?

两者都不是。您应该改用:


如果您正在遍历一个向量,并且实际上不需要存储任何索引,那么另一个答案中提到的索引就足够了。如果您确实关心索引,那么最好的方法可能是使用int i=0的标准;i 基本上:

基于范围的循环更方便语法 使用索引,除了遍历需要索引的向量之外,您可能还需要做一些事情 使用迭代器,您可能需要迭代器来完成其他任务
你说有用到底是什么意思?你想知道哪一个更有效还是其他什么吗?最有用的方法是我解决当前问题的最佳方式。从技术上讲,rangefor循环只是一个基于迭代器的循环,语法更简洁。
vector<int> V
for(int i=0; i<V.size(); ++i) //using index based method

for(auto it=V.begin(); it != V.end(); ++it) //using iterator based method

for(const auto& x : V) //using range based loop
vector<int> vv;
...
for( const auto& x : vv )
{
        // ...
}