寫++i、++j相比於寫i++、j++,程序的執行速度更快。回顧++被重載成前置和后置運算符的例子如下:
CDemo CDemo::operator++ () { //前置++ ++n; return *this; } CDemo CDemo::operator ++(int k) { //后置++ CDemo tmp(*this); //記錄修改前的對象 n++; return tmp; //返回修改前的對象 }
后置++要多生成一個局部對象 tmp,因此執行速度比前置的慢。同理,迭代器是一個對象,STL 在重載迭代器的++運算符時,后置形式也比前置形式慢。在次數很多的循環中,++i和i++可能就會造成運行時間上可觀的差別了。因此,本教程在前面特別提到,對循環控制變量i,要養成寫++i、不寫i++的習慣。
