写++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++
的习惯。