当前位置:  开发笔记 > 编程语言 > 正文

什么更有效,i ++或++ i?

如何解决《什么更有效,i++或++i?》经验,为你挑选了4个好方法。

确切重复:在C++中i ++和++ i之间是否存在性能差异?
确切重复:循环中i ++和++ i之间的区别?


什么更有效,i ++或++ i?

我只在Java和C/C++中使用过这个,但我真的要求实现它的所有语言.

在大学里我有一位教授告诉我们++我更有效率,但已经有几年了,我想从Stack Overflow社区获得意见.



1> Edouard A...:

我++:

创建一个i的临时副本

增量我

返回临时副本

++ i:

增量我

回来我

通过优化,生成的程序集很可能是相同的,但++ i更有效.

编辑:请记住,在C++中,我可能是支持前缀和后缀++运算符的任何对象.对于复杂对象,临时复制成本不可忽略.


这取决于"我"是什么.

2> Tor Haugen..:

我会寻找其他优化潜力.



3> Godeke..:

效率不应该是你的关注:它是意义.这两者是一样的,除非它们是独立的:一个操作预先使用价值,另一个操作.

int i; i = 1; cout << i ++; //返回1

int i; i = 1; cout << ++ i; //返回2

当意义不重要时,大多数编译器会将++ i和i ++(比如for循环)转换为相同的机器/ VM代码.



4> Ted..:

它在现代编译器上无关紧要.

int v = i++;  

是相同的

int v = i;
i = i + 1;

现代编译器将发现v未使用且计算的代码v是纯粹的(没有副作用).然后它将删除v和分配代码,并将生成此

i = i + 1;

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有