递增运算符和递减运算符为对象的+1和-1提供了简洁的书写形式。
自增自减运算符的应用:
这两个运算符除了应用在算术运算,还可应用于迭代器,因为很多迭代器并不支持算术运算。
递增和递减运算符有两种书写形式:前置版本和后置版本。
前置版本++i & --i
:首先将运算对象+1/-1,然后将改变的对象作为求值结果。
后置版本i++ & i--
:首先将运算对象+1/-1,然后将运算对象改变之前的那个值的副本作为求值结果。
int i, j = 0;
j = ++i; // 前置版本,i = 1,j = 1,获得递增之后的值
j = i++; // 后置版本,i = 2,j = 1,获得递增之前的值
除非必须,否则不用递增递减运算符的后置版本!!
前置版本的运算符,避免了不必要的工作,它把运算对象+1后,直接返回了运算后的对象,期间不涉及对象的拷贝等操作;而后置运算符,则需要将运算对象先保存下来,用于+1后,返回之前的对象,涉及到运算对象的拷贝等操作。
如果你并不需要返回递增/递减之前的值,则强烈建议不使用递增运算符的后置版本!!