这里之前其实没有太在意这个问题,感觉自己写程序要写循环时自己哪个顺手就用哪个,但是这几个星期认真看了下C++ primer ,发现了原来就这么一个基础的东西也是有点技巧性的.
除非必须,我们应该一般都不要用递增递减运算符的后置版本i++或者i--,这是因为前置版本的递增运算符避免了不必要的工作,它把值加1后直接返回改变了的运算对象.与之相比,后置版本需要将原始值储存下来以便返回这个未修改的内容,如果我们不需要修改之前的值,那么后置版本的操作就是一种浪费。
对于数值和指针类型来说,编译器可能对这种额外的工作进行一定的优化,但是对于复杂的迭代器来说,这种额外的工作就消耗巨大了。(参考 C++ primer中文版第五版)