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;
}

但是,编译器会对这种情况进行优化,所以实际上,这两种写法多数情况下在速度上是没有区别的。