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

C++中的前后递增/递减运算符在循环中是否具有相同的性能?

如何解决《C++中的前后递增/递减运算符在循环中是否具有相同的性能?》经验,为你挑选了2个好方法。

考虑以下两个例子.

class ClassOne
{
 //class definition is here
};

std::vector< ClassOne > myListOfObjects;

std::vector< ClassOne >::const_iterator iter = myListOfObjects.begin();

Example 1: 
for( ; iter < myListOfObjects.end(); **++iter**)
{
   //some operations
}

OR

Example 2: 
for( ; iter < myListOfObjects.end(); **iter++**)
{
   //some operations
}

哪一个更快?循环上下文中的++ iter或iter ++.

原因关闭:

从Brian的帖子复制(使问题更简洁).

您也可以尝试以下类似问题之一:此处或此处,此处或此处.



1> froh42..:

不,他们没有相同的表现:

Postincrement将创建一个副本然后递增,然后返回副本

预增量将增加然后返回原始

所以(除非你处理像int这样的简单事情)preincrement更快.



2> Ryan Graham..:

如本回答所述,pre更快.当你处理原语(int,char等)时它们是相同的.在这种情况下,他们正在调用重载运算符.

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