C ++中的增量 - 何时使用x ++或++ x?我目前正在学习C ++,而且我刚刚学会了增量。我知道你可以使用“++ x”进行增量,然后使用“x ++”进行增量。不过,我真的不知道何时使用两者中的任何一个...我从来没有真正使用过“++ x”,到目前为止,事情总是很好 - 所以,我什么时候应该使用它?示例:在for循环中,何时优先使用“++ x”?此外,有人可以确切地解释不同的增量(或减量)如何工作?我真的很感激。
3 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
斯科特迈耶斯告诉你更喜欢前缀,除非那些逻辑会指示后缀是合适的。
“更有效的C ++”第6项 - 这对我来说是足够的权威。
对于那些没有这本书的人,这里有相关的引用。从第32页开始:
从你作为C程序员的日子开始,你可能会记得增量运算符的前缀形式有时被称为“增量和提取”,而后缀形式通常被称为“提取和增量”。这两个短语很重要,因为它们都可以作为正式的规范......
在第34页:
如果你是那种担心效率的人,那么当你第一次看到后缀增量功能时,你可能会耿耿于怀。该函数必须为其返回值创建一个临时对象,上面的实现还会创建一个必须构造和销毁的显式临时对象。前缀增量功能没有这样的临时...
慕盖茨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 }
显然,它比预增量效率低。
预增量不会生成临时对象。如果您的对象创建成本很高,这可能会产生显着差异。
- 3 回答
- 0 关注
- 473 浏览
添加回答
举报
0/150
提交
取消