【C++】for循环中++i比i++性能好

今天做算法的时候发现了有道题目是在for循环中是用++i而不是平常所使用的i++,好奇心驱使查了一下有没有区别,结果是在性能上有所区别,以后还是多考虑用++i吧~

for循环中 ++i 和 i++的结果一样。

都要等代码块执行完毕才能执行。
i++和++i只有对其存在行有区别,过了存在行都一样

int i = 0;
qDebug()<<++i; // 这行是i++或++i对结果无影响
qDebug()<<i; // 1

但是性能不同
在进行大量循环的时候++i的性能要比i++的性能好。

原因:

i++是在使用当前值之后再+1,所以需要一个临时变量来转存。

而++i则是在直接+1,省去了对内存的操作的环节,相对而言能够提高性能。

  • i++ 原理:先自增,后返回自增之前的值。
  • ++i 原理:先自增,后返回自增之后的值。

https://blog.csdn.net/android_cai_niao/article/details/106027313
https://blog.csdn.net/could98/article/details/112860818

补充:

网上看java的编译器有优化?
不确定C++是否有优化

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用OpenCV进行数字识别的一种常见方法是通过图像处理和机器学算法。下面是基本的步骤1. 准备训练数据集:收集一组包含数字的图像,并每个图像提供正确的标签。使用手写数字数据集(例如MNIST或自己创建一个数据集。 2. 图像预处理:使用OpenCV对图像进行预处理,以提取数字特征并减少噪声。例如,可以使用灰度转换、二值化、滤波等技术。 3. 特征提取从预处理后的图像提根据你提供的信息,C++的for循环句的写法是正确的。然而,如果编译器报错说变量未定义,可能是因为你的代码存在其他问题导致编译器无法识别变取数字的关键特征。常见的方法包括轮廓提取、边缘检测、形状分析等量i的定义。 请确保以下几个方面没有问题: 1. 变量i的定义:在for循环之前,你需要先声明并定义变量i。例如,可以在for循环之前语句"int i;"来声明。 4. 训练器:使用机器学习算法训练一个分类器,将提取的特征与正确的标签进行关联。常用的分类器包括支持向量机(SVM)、k最近邻(KNN)等。 5. 数字识别:对于待识别的图像,进行与训练过程相同的预处理步骤,并提取相同的特征。然后使用训练好的分类器对像进行分类,并输出识别结果。 这是一个基本的数字识别流程。体的实现可能因应用场景和需求的不同而有变化。在实际应用,还可以使用深度学习技术(如卷积神经网络)来改进识别性能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值