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