i++与++i效率比较

1.对于i是内置类型,效率无差别,编译器会自动优化

2.对于i为非内置类型,效率会存在不同,主要体现在其功能作用不同,++i是将i值自增后返回,而i++是返回(i+1)的临时变量,同时将i自增。

可以猜想其重载操作符实现逻辑与下面代码类似:

className className:: operator ++()
{
  ++m_iValue;  //位置成员标识自增
  return  * this ;
}
className className:: operator ++( int )
{
   className clObj;
   clObj.value=value;
   m_iValue++;
   
   return  clObj;
}
从上面代码可以看出,后置++多了一个保存临时对象的操作,因此效率自然低一些。

因此:

对于内置对象都可以

对于非内置对象,最好采用++i格式

猜你喜欢

转载自blog.csdn.net/liyuanba2dai/article/details/79866311
i++