寫++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++
的習慣。