6.11. 前置自增和自减
Tip
对于迭代器和其他模板对象使用前缀形式 (++i
) 的自增, 自减运算符.
定义:
对于变量在自增 (++i
或i++
) 或自减 (—i
或i—
) 后表达式的值又没有没用到的情况下, 需要确定到底是使用前置还是后置的自增 (自减).
优点:
不考虑返回值的话, 前置自增 (++i
) 通常要比后置自增 (i++
) 效率更高. 因为后置自增 (或自减) 需要对表达式的值i
进行一次拷贝. 如果i
是迭代器或其他非数值类型, 拷贝的代价是比较大的. 既然两种自增方式实现的功能一样, 为什么不总是使用前置自增呢?
缺点:
在 C 开发中, 当表达式的值未被使用时, 传统的做法是使用后置自增, 特别是在for
循环中. 有些人觉得后置自增更加易懂, 因为这很像自然语言, 主语 (i
) 在谓语动词 (++
) 前.
结论:
对简单数值 (非对象), 两种都无所谓. 对迭代器和模板类型, 使用前置自增 (自减).