C++:在for循环运行时更改for循环的索引是不是一种糟糕的方法?

ksm*_*001 2 c++ indexing loops for-loop

我有一个for循环搜索结构数组,以便找到一个特定的结构.现在这个数组的大小可能是10000.

在for循环中,我可能会收集一些额外的信息,告诉我你正在寻找的结构到底在哪里.因此,如果您的索引当前为'5',您可能会发现它不是'5'而是'9000'.

所以我使用这些信息来改变索引.

现在代码工作完全正常而不改变索引,因为它确实找到了所需的信息.但是,如果我100%确定我正在做的事情在这种情况下是正确的,是否可以更改for循环中的索引以便更快地获得结果?

提前致谢

eca*_*mur 9

这绝对没问题.该语言不区分更改循环体中的索引和在循环头中的增量语句中更改它.

for (initializer-statement; condition-statement; increment-statement)
    loop-body;
Run Code Online (Sandbox Code Playgroud)

大多相当于

{
    initializer-statement;
    while (condition-statement) {
        loop-body;
        increment-statement;
    }
}
Run Code Online (Sandbox Code Playgroud)

一个区别是continue循环的循环体内的语句for仍将执行increment-statement,如果你不期望它可能会导致问题.

另外要注意,不要通过超越终止条件来创建无限循环.