前置++返回加1后的引用,后置++返回加1前的副本;前者效率更高,尤其在类类型中,故循环等场景推荐使用++i。

在C++中,++i(前置自增)和i++(后置自增)虽然都使变量的值加1,但它们在表达式中的行为有本质区别。
这是两者最核心的区别:
示例代码:
int i = 5;
int a = ++i; // i 先变为6,a得到6
int b = i++; // b得到6,然后i变为7
最终结果:a=6, b=6, i=7
立即学习“C++免费学习笔记(深入)”;
对于基本类型(如int),编译器通常会优化掉性能差异。但在类类型(如迭代器)中,这种差别更明显:
因此,在不需要旧值的场景下(比如循环中),推荐使用 ++i,特别是在STL迭代器操作中。
在自定义类中,为了区分前置和后置版本,C++规定:
T& operator++();
T operator++(int);
例如:
class Counter {
int value;
public:
Counter& operator++() {
++value;
return *this;
}
Counter operator++(int) {
Counter old = *this;
++value;
return old;
}
};
基本上就这些。理解清楚返回时机和性能影响,就能正确选择使用哪种形式。
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号