C++ 为什么教科书更喜欢++;x";至;x++&引用;什么时候是上下文不变的?

C++ 为什么教科书更喜欢++;x";至;x++&引用;什么时候是上下文不变的?,c++,post-increment,pre-increment,C++,Post Increment,Pre Increment,可能重复: 为什么在C++教科书中有一个偏好写代码> ++x/c>而不是 x++当在前/后本质无关的上下文中发生时? 一般来说,动作似乎是按宾语、动词顺序进行的 例如: foo.size()是“对象”foo,带有“动词”size a+b是“对象”a,带有动词+ 在EXCEL中,始终选择对象,然后指定动作(动词) 注意:Lotus 1-2-3按照动词-对象顺序进行操作,这给在123到XL转换中开发肌肉记忆的人带来了巨大的问题…i++将创建对象i的副本。如果我是一个复杂的迭代器,这可能会大大

可能重复:



<>为什么在C++教科书中有一个偏好写代码> ++x/c>而不是<代码> x++<代码>当在前/后本质无关的上下文中发生时? 一般来说,动作似乎是按宾语、动词顺序进行的

例如:

foo.size()
是“对象”
foo
,带有“动词”
size

a+b
是“对象”
a
,带有动词
+

在EXCEL中,始终选择对象,然后指定动作(动词)


注意:Lotus 1-2-3按照动词-对象顺序进行操作,这给在123到XL转换中开发肌肉记忆的人带来了巨大的问题…

i++将创建对象i的副本。如果我是一个复杂的迭代器,这可能会大大降低性能,与++i相比。

我更喜欢
++x
而不是
x++
,因为对我来说,它强调变量名称上的增量运算。严格来说,这是一个偏好的问题,但我认为这更清楚地表明了我的意图


更重要的是,你要选择其中一个,并始终如一地使用它。在效果相同的情况下,随意使用带有++xx++的代码只会导致无法维护。迟早,有人会“修复”它是一致的,当他们改变一个真正重要的实例时,他们可能会引入错误。

可能的副本,尤其是我也不会称之为复制品,因为他一般都是问,而不是仅仅在循环中。你应该真正阅读C++初学者的指南。类似于Excel对你没有多大帮助。因为如果你的编译器真的很愚蠢,
i++
将不必要地存储
i
的临时副本。事实并非如此,所以这并不重要,但这就是为什么
++i
被认为是最佳实践。他们这样做是为了保持一致性:这对迭代器非常重要,因此他们一直在其他地方使用
++x
,以使书中的代码示例看起来一致。这是历史原因,但它现在真的不适用了。通常在调试模式下只有性能差异。如果有副作用呢?