社区
工具平台和程序库
帖子详情
i++和++i用在for循环语句中有什么区别?
iBuffer
2003-05-30 04:19:18
我最近看c++primer这本书里对vector、list、map进行遍历时的for循环有用++i的,在msdn中也时这么用的。可是我把++i改成i++后出来的结果是一样的。不知道在for循环中两者有什么区别?
...全文
1380
22
打赏
收藏
i++和++i用在for循环语句中有什么区别?
我最近看c++primer这本书里对vector、list、map进行遍历时的for循环有用++i的,在msdn中也时这么用的。可是我把++i改成i++后出来的结果是一样的。不知道在for循环中两者有什么区别?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ch_builder
2003-05-31
打赏
举报
回复
楼上兄弟们说得都很对,++i与i++谁在前第一次用时就先返回谁,而且两者在同一个程序中,i++的值总会比++i的值小1。
gzqreder
2003-05-31
打赏
举报
回复
哪个在前面就返回哪个
++i返回i+1,i++返回i
robertnet
2003-05-31
打赏
举报
回复
++i 与 i++ 不存在效率问题,关键看你怎么用。
DanielWYO
2003-05-31
打赏
举报
回复
++i 效率是会高一点的.
另外, B.S的经验谈也是认为尽量不要使用i++
iBuffer
2003-05-31
打赏
举报
回复
多谢大家,没想到这俩个东东有这么多说道。
senkiner
2003-05-31
打赏
举报
回复
看这两个代码有和区别:
//1:
for(i=0;i<5;i++)
{
cout << i << endl;
}
cout << "--------\n" << i << endl;
//2:
for(i=0;i<5;++i)
{
cout << i << endl;
}
cout << "--------\n" << i << endl;
hydra1101
2003-05-30
打赏
举报
回复
另外如果i是一个类的话,++i也许效率会高一些,我们公司的技术主管对这件事指出来过,不过他说的是我们自己的类库,对++i做了优化,他告诉我,没有特殊的情况,用++i而不是i++。
Cypher
2003-05-30
打赏
举报
回复
楼上有人说对了,也有人说错了,这两个用在for循环中效果是相同的,效率取决于i的类型,如果是int等内置类型,没什么错误,但对于用户自定义类型重载的++如最常见的iterator则++i效率要高一些。
hydra1101
2003-05-30
打赏
举报
回复
for中几乎没有区别,因为它的执行顺序for(partA;partB;partC)
首先partA
然后每次循环之前先partB
循环之后partC
区别在于partC可能是多条语句,例如:for(int i=0;i<10;++i,a=i)---〉这种写法不规范,所以也没有必要知道啦
wanchl
2003-05-30
打赏
举报
回复
++i是先加1再参加运算,而i++是先运算再加1
xzygod
2003-05-30
打赏
举报
回复
运算中i++比++i多产生一个临时对象,从效率的角度说,应用++i代替i++
egyptnile
2003-05-30
打赏
举报
回复
no difference
georgepcb
2003-05-30
打赏
举报
回复
对于for循环,++i和i++没有区别。
xuanyuanhaobo
2003-05-30
打赏
举报
回复
在for的第三项里面无区别~~
for (int i = 0; i < n; i++)
{
...
}
与
for (int i = 0; i < n; ++i)
{
...
}
与
for (int i = 0; i < n;)
{
...
i++;(++i)_
}
无区别
hyifeng
2003-05-30
打赏
举报
回复
如果你用的是支持随机存储的容器如vector,string...
++iterator应该和iterator++是没有区别的,
因为通常迭代器简单实现为普通指针。
但是,如list,map,set等容器,iterator就没有这么简单了,
++iterator效率高于iterator++,因为省了一个临时对象。
Eagle_118
2003-05-30
打赏
举报
回复
++i和i++在for循环中的区别是++i比i++的运算在一般情况下要快一点。
如果你重载过这两个运算符,这不难理解为什么!
skywarship
2003-05-30
打赏
举报
回复
++i和i++本身是有区别的,但如果用在for语句中就不存在任何区别了
for(...;...;i++/++i)
{...}
相当于
while(...)
{i++/++i;}
black_fox
2003-05-30
打赏
举报
回复
不好意思。我说的无区别是指在他用的例子中无区别,并不是说++i和i++这两种操作无区别。大家别拍我
black_fox
2003-05-30
打赏
举报
回复
无区别,但是可能效率会不一样。实现可能如此:
class CTemp
{
public:
CTemp():i(0)
{
}
CTemp operator ++ (int) //i++调用这个
{
CTemp tmp(*this);
i++;
return tmp;
}
CTemp & operator ++() //++i调用这个
{
i++;
return *this;
}
// operator int const (){ return i; }
virtual ShowInfo()
{
CString strMsg;
strMsg.Format("i = %d",i);
AfxMessageBox(strMsg);
}
protected:
int i ;
private:
};
实际上++i可能比i++要块一点,当然,编译器不知道会不会做这种优化。
xueyanchao
2003-05-30
打赏
举报
回复
i++和++i的区别是这样的
#include <iostream.h>
void main()
{
int i=3,j=3;
cout<<++i; //OUT: 4
cout<<j++; //OUT: 3
cout<<i; //OUT: 4;
cout<<j; //OUT: 4;
}
明白了吗?
加载更多回复(2)
微信小程序中常用IF条件和for
循环语句
的使用
让微信小程序爱好者能掌握小程序中if条件语句和for
循环语句
的使用
For循环中的
++
i与i
++
的
区别
前言: 在刷LeetCode中参考最佳解法时观察到官方在for循环中会经常用到
++
i,而不是我们从一开始接触java就建立的用i
++
的习惯,当我第一次看见前者这种用法时,会对自己产生怀疑,难道他们的用法真的有
区别
吗?但经过我查阅资料,其实两种并没有直接的
区别
,唯一的
区别
就是代码运行的效率问题。
区别
: for循环中i
++
:java中i
++
是先返回i的值后再自增i,所以在每次for循环时都会花费额外的内存和时间去开辟新的临时变量空间来转存,故其效率会更低。 for循环中
++
i:java中
++
i是直接将
C语言
循环语句
中 i
++
,
++
i, i--, --i的使用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、for
循环语句
1. `i
++
` 和 `
++
i` 的使用2. `i--` 和 `--i` 的使用二、while
循环语句
1. `i
++
` 和 `
++
i` 的使用`i
++
`的情况`
++
i`的情况2. `i--`和 `--i` 的使用`i--`的情况`--i`的情况二、do...while
循环语句
1. `i
++
` 和 `
++
i` 的使用2. `i--` 和 `--i` 的使用 前言 本文主要是探讨 i
++
,
++
i, i–,
C语言 for循环中i
++
和
++
i的比较
在看书和别人博客里的代码的时候 经常会看见不同的人在for循环里对i用不同的自增形式 那么对于for循环来说,i
++
和
++
i有什么
区别
呢? 首先需要明确i
++
和
++
i的定义
++
是自增运算符,其作用是将作用对象的值增加1
++
放在作用对象的前面的话,例如
++
i,作用是将i加1,然后返回i加1之前的数值
++
放在作用对象的后面的话,例如i
++
,作用是将i加1,然后返回i加1之后的数值 那么对于这段代...
在for循环中i
++
和
++
i有什么
区别
?应该选哪个?
2、但是我们讨论的是放在for循环之中进行操作,针对内置类型变量来说,没有什么
区别
,都是为了实现i加一的功能,甚至于性能方面也没什么
区别
,因为编译器会自动优化内置变量。比如针对
++
i操作来说,直接返回加一之后的操作值,针对i
++
来说,需要先进行定义一个临时变量,用于储存i加一之前的值,然后对i进行加一,最后返回临时变量的值。1、首先,在非for循环的使用中,两者的功能是不一样的,
++
i是为了先对i进行加一,然后将加一后的数值进行返回,而i
++
是先返回i的值,然后对i进行加一。...
工具平台和程序库
24,854
社区成员
27,343
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章