【发布时间】:2020-08-10 20:06:22
【问题描述】:
这些天我经常看到这种情况:
for (int i = 0; i < NUMBER; ++i)
而不是 - 就像 20 年前的时尚(?)那样 - 这个:
for (int i = 0; i < NUMBER; i++)
这种变化是有原因的还是只是时尚?
(这里有一个关于 Java 的类似问题,但我认为答案没有触及问题的核心)
【问题讨论】:
-
在 C++ 中,预增量是首选,因为对于非原始类型,它避免构造对象旧状态的副本。
-
@jamesdlin - 有机会得到更全面的答复:我根本没想到。
-
fwiw,早在 20 年前,
++i应该是首选,这没有什么实质性的改变 -
自 1992 年以来我一直在专业地使用 C++。对于 for 循环中的 int,我总是编写我 30 年前学习的简单、规范的版本 i++。对于迭代器,我需要使用 preincrement 版本来提高效率,即 ++it.