是否有一种有效的方法来使用for循环迭代器,同时仍然可以访问元素号?



这可能是一个很容易回答的问题,但我一直在试图改变我的语法,使用for循环与向量更有效。我之前使用的是for循环的常规方法:

for (int i = 0; i < vector.size(); i++){
//code 
}

但是我正在尝试改变我的方法来推荐使用迭代器

for (const auto i : vector){
//code 
}

我喜欢这种方式,因为它看起来更干净,显然是大多数人推荐的方式,但之前的方法允许我使用" I "这样我就可以控制特定的元素编号。所以如果我想访问第5个元素我可以通过输入' vector[I] '来实现;在循环的第五次迭代期间。我确信第二种方法也允许这一点,我只是不知道要使用的具体代码。有人能推荐一下他们认为使用第二种方法获得元素访问的最佳方法吗?

在for循环之前创建一个变量,并在每次迭代时增加该变量。然后你可以把它用作索引。

如果你不想用一个新的无用的变量污染外部作用域,你可以把它放在额外的括号里。

{
int index = 0;
for (const auto i : vector){
//code 
index++;
}
}

最新更新