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

标签 c++ loops for-loop indexing

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

在 for 循环中,我可能会收集一些额外的信息,这些信息会告诉我您要查找的结构的确切位置。因此,如果您的索引当前为“5”,您可能会发现它不是“5”,而是“9000”。

所以我使用这些信息来更改索引。

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

提前致谢

最佳答案

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

for (initializer-statement; condition-statement; increment-statement)
    loop-body;

大部分等同于

{
    initializer-statement;
    while (condition-statement) {
        loop-body;
        increment-statement;
    }
}

一个区别是 for 循环体中的 continue 语句仍然会执行 increment-statement,这可能会导致出乎意料的问题。

另请注意,不要因超出终止条件而造成无限循环。

关于C++:在运行时更改 for 循环的索引是一种不好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11843497/

相关文章:

java - 按降序对数组进行排序?

javascript:我如何创建一个缓慢的for...in循环

C++ 链接器错误 LNK2001 和 LNK1120 Winsock2 Lib

java - While (Java) 战舰游戏中的 While 循环

python - 在python中计算距离

python - 嵌套 FOR 循环索引问题 - Python

r - 如何计算 R 中增加时间窗口的方法

c++ - 创建 `container< container<Base>>`的STL容器

C++ 更快的字符数组比较

c++ - boundingRect() 的工作原理