i++与++i效率比较

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

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

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

 

className className::operator++()

{

  ++m_iValue; //位置成员标识自增

  return *this;

}

className className::operator++(int)

{

   className clObj;

   clObj.value=value;

   m_iValue++;

   

   return clObj;

}

从上面代码可以看出,后置++多了一个保存临时对象的操作,因此效率自然低一些。

因此:

对于内置对象都可以

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

你可能感兴趣的:(开发规则,c++基础原理)