为了账号安全,请及时绑定邮箱和手机立即绑定

C ++中的增量 - 何时使用x ++或++ x?

C ++中的增量 - 何时使用x ++或++ x?

C++
四季花海 2019-08-16 16:37:10
C ++中的增量 - 何时使用x ++或++ x?我目前正在学习C ++,而且我刚刚学会了增量。我知道你可以使用“++ x”进行增量,然后使用“x ++”进行增量。不过,我真的不知道何时使用两者中的任何一个...我从来没有真正使用过“++ x”,到目前为止,事情总是很好 - 所以,我什么时候应该使用它?示例:在for循环中,何时优先使用“++ x”?此外,有人可以确切地解释不同的增量(或减量)如何工作?我真的很感激。
查看完整描述

3 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

斯科特迈耶斯告诉你更喜欢前缀,除非那些逻辑会指示后缀是合适的。

“更有效的C ++”第6项 - 这对我来说是足够的权威。

对于那些没有这本书的人,这里有相关的引用。从第32页开始:

从你作为C程序员的日子开始,你可能会记得增量运算符的前缀形式有时被称为“增量和提取”,而后缀形式通常被称为“提取和增量”。这两个短语很重要,因为它们都可以作为正式的规范......

在第34页:

如果你是那种担心效率的人,那么当你第一次看到后缀增量功能时,你可能会耿耿于怀。该函数必须为其返回值创建一个临时对象,上面的实现还会创建一个必须构造和销毁的显式临时对象。前缀增量功能没有这样的临时...


查看完整回答
反对 回复 2019-08-16
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

从递增迭代器时的cppreference

如果你不打算使用旧值,你应该更喜欢预增量运算符(++ iter)到后增量运算符(iter ++)。后增量通常如下实现:

   Iter operator++(int)   {
     Iter tmp(*this); // store the old value in a temporary object
     ++*this;         // call pre-increment
     return tmp;      // return the old value   }

显然,它比预增量效率低。

预增量不会生成临时对象。如果您的对象创建成本很高,这可能会产生显着差异。


查看完整回答
反对 回复 2019-08-16
  • 3 回答
  • 0 关注
  • 473 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信