[开发语言][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后,返回之前的对象,涉及到运算对象的拷贝等操作。

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

相关推荐
团子的二进制世界11 小时前
Sentinel-服务保护(限流、熔断降级)
java·开发语言·sentinel·异常处理
阿猿收手吧!11 小时前
【C++】模板偏特化与std::move深度解析
服务器·c++
问好眼11 小时前
【信息学奥赛一本通】1296:开餐馆
c++·算法·动态规划·信息学奥赛
虫小宝11 小时前
淘客系统的容灾演练与恢复:Java Chaos Monkey模拟节点故障下的服务降级与快速切换实践
java·开发语言
zz345729811311 小时前
c语言基础概念9
c语言·开发语言
yxm263366908111 小时前
【洛谷压缩技术续集题解】
java·开发语言·算法
键盘帽子11 小时前
多线程情况下长连接中的session并发问题
java·开发语言·spring boot·spring·spring cloud
Qt学视觉12 小时前
3D3-PCL全面总结
c++·opencv·3d
毅炼12 小时前
Java 基础常见问题总结(1)
开发语言·python
fengxin_rou12 小时前
【黑马点评实战篇|第一篇:基于Redis实现登录】
java·开发语言·数据库·redis·缓存