because ++i use less memory.
// prefix
T& T::operator++(){
*this += 1; // or sth else
return *this;
}
// postfix
T& T::operator++(int){
// need to create a new variable
T tmp(*this); // T tmp = *this
++(*this);
return tmp;
}
但是,编译器会对这种情况进行优化,所以实际上,这两种写法多数情况下在速度上是没有区别的。