C++面试题:++i和i++哪个效率高?

时间:2022-02-03 23:46:53

1、当变量i的数据类型是c++语言默认提供的类型的话,他们的效率是一样的。

从其汇编执行的条数是一样的,所以其执行效率是一样的(有兴趣可以用gdb查看汇编代码)

 2、我们自定的数据类型,++i效率高于i++,通过运算符重载来给大家说明这一点。

Operator Operator::operator++()
{
   ++value;    //内部成员变量
   return *this;
}

Operator Operator::operator++(int)
{
 Operator temp;
 temp.value=value;
 value++;
 return temp;
}

后++必须要有一个临时对象才可以完成,产生临时对象,需要发生一系列的拷贝动作,效率自然比直接引用对象低很多。