c++ - 在 for 循环终止条件中使用 < 或 !=
问题描述
给定一个向量v
,我想遍历向量中的每个元素并执行需要当前索引的操作。
我已经看到了以这两种方式编写的基本 for 循环:
// Using "<" in the terminating condition
for (auto i = 0; i < v.size(); ++i)
{
// Do something with v[i]
}
// Using "!=" in the terminating condition
for (auto i = 0; i != v.size(); ++i)
{
// Do something with v[i]
}
有任何实际理由偏爱其中一个吗?我已经看到它<
更频繁地使用,但是使用它有性能优势!=
吗?
解决方案
有一个,尽管有点令人费解,有理由更<
喜欢!=
.
如果出于某种原因,您的 lop 的主体修改i
并跳过了阈值,<
仍然会终止循环,其中!=
将继续迭代。
在绝大多数情况下它可能没有区别,但习惯<
可能会阻止!=
不会出现的错误。还有一个额外的优势,它非常小,但<
需要更少的字符来编写,因此它使源文件更小。
同样,上述论点是一个笑话,但如果您需要一个论点来使用另一个论点,那么您就有了。
推荐阅读
- xquery - 特定路径的不同值组合
- r - R v 3.6.1 中的 lmer 错误和预测函数/从给定自变量的 lmer 模型中获取置信区间
- php - 将复选框值有条件地添加到 PHP MySQLi 查询及其相关 OR 中的最佳方法是什么?
- javascript - 如何在 Electron 应用中启用 Chromium 触摸手势?
- excel - 如果单元格 = true,如何将整行复制到另一张工作表
- mongodb - 对象内的 Mongoose FindAndUpdate 元素
- python-3.x - 谷歌 word2vec 是训练模型 CBOW 还是 skipgram
- javascript - 如何修复错误:无法读取未定义的属性“mapmatching”
- html - 如何将动态列表从 AngularJS 绑定到 Html 表?
- php - Construct() 必须是 symfony 3.4 中的一个实例