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

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

我目前正在学习C ++,而且我刚刚学会了增量。我知道你可以使用“++ x”进行增量,然后使用“x ++”进行增量。

不过,我真的不知道何时使用两者中的任何一个...我从来没有真正使用过“++ x”,到目前为止,事情总是很好 - 所以,我什么时候应该使用它?

示例:在for循环中,何时优先使用“++ x”?

此外,有人可以确切地解释不同的增量(或减量)如何工作?我真的很感激。


四季花海
浏览 463回答 3
3回答

猛跑小猪

斯科特迈耶斯告诉你更喜欢前缀,除非那些逻辑会指示后缀是合适的。“更有效的C ++”第6项 - 这对我来说是足够的权威。对于那些没有这本书的人,这里有相关的引用。从第32页开始:从你作为C程序员的日子开始,你可能会记得增量运算符的前缀形式有时被称为“增量和提取”,而后缀形式通常被称为“提取和增量”。这两个短语很重要,因为它们都可以作为正式的规范......在第34页:如果你是那种担心效率的人,那么当你第一次看到后缀增量功能时,你可能会耿耿于怀。该函数必须为其返回值创建一个临时对象,上面的实现还会创建一个必须构造和销毁的显式临时对象。前缀增量功能没有这样的临时...

慕盖茨4494581

从递增迭代器时的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   }显然,它比预增量效率低。预增量不会生成临时对象。如果您的对象创建成本很高,这可能会产生显着差异。
打开App,查看更多内容
随时随地看视频慕课网APP