考虑以下两个例子.
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的帖子复制(使问题更简洁).
您也可以尝试以下类似问题之一:此处或此处,此处或此处.
不,他们没有相同的表现:
Postincrement将创建一个副本然后递增,然后返回副本
预增量将增加然后返回原始
所以(除非你处理像int这样的简单事情)preincrement更快.
如本回答所述,pre更快.当你处理原语(int,char等)时它们是相同的.在这种情况下,他们正在调用重载运算符.