++i 先自增1,再返回;
i+先返回i,再自增1。
++i
返回引用
int& int::operator++()
{
*this +=1;
return *this;
}
i++
const int int::operator(int)
{
int oldValue = *this;
++(*this);
return oldValue;
}
就效率来说,应该是++i
更高。特别是对于迭代器来说,用 it++这种形式要返回一个无用的临时对象,而it++是函数重载,所以编译器无法对其进行优化,所以每遍历一个元素,你就创建并销毁了一个无用的临时对象