[开发语言][C++]:递增递减运算符

什么是递增递减运算符


递增运算符和递减运算符为对象的+1和-1提供了简洁的书写形式。

自增自减运算符的应用:

这两个运算符除了应用在算术运算,还可应用于迭代器,因为很多迭代器并不支持算术运算。

递增和递减运算符有两种书写形式:前置版本和后置版本。

  • 前置版本 ++i & --i:首先将运算对象+1/-1,然后将改变的对象作为求值结果。

  • 后置版本 i++ & i--:首先将运算对象+1/-1,然后将运算对象改变之前的那个值的副本作为求值结果。

cpp 复制代码
int i, j = 0;
j = ++i;  // 前置版本,i = 1,j = 1,获得递增之后的值
j = i++;  // 后置版本,i = 2,j = 1,获得递增之前的值

除非必须,否则不用递增递减运算符的后置版本!!

前置版本的运算符,避免了不必要的工作,它把运算对象+1后,直接返回了运算后的对象,期间不涉及对象的拷贝等操作;而后置运算符,则需要将运算对象先保存下来,用于+1后,返回之前的对象,涉及到运算对象的拷贝等操作。

如果你并不需要返回递增/递减之前的值,则强烈建议不使用递增运算符的后置版本!!

相关推荐
Peregrine917 分钟前
C++ - > 类和对象
java·c++·算法
余醉 | dtminer20 分钟前
56%的保护效应藏在乳腺密度里:Nat Commun 高分中介孟德尔随机化全 R 管线拆解(附核心图)
开发语言·r语言·孟德尔随机化
2501_9339232523 分钟前
SpringCloud组件:Eureka服务注册与发现
java·开发语言·后端·spring cloud·eureka
染指111042 分钟前
142.Agent-多Agent框架-通过Skills实现多Agent
开发语言·人工智能·python·langchain·agents
好好学习O(∩_∩)O1 小时前
[QT] 多线程moveToThread 和易踩的8个坑
开发语言·qt
我是人✓1 小时前
Java核心语法:作用域、循环与大数值处理
java·开发语言·后端
敲代码的乔帮主1 小时前
Python 3 现代类型标注入门
开发语言·python
‎ദ്ദിᵔ.˛.ᵔ₎2 小时前
c++11:fuction包装器
开发语言·c++
kimnoic2 小时前
Python 爬虫的原理
开发语言·python
Fluxproxy2 小时前
Python爬虫异步提速终极方案|线程池ThreadPoolExecutor实战,告别单线程慢速爬取
开发语言·爬虫·python