自增和自减操作符
为什么推荐我们使用前置运算++i,而不是后置运算i++?
因为使用前置运算的工作更少时,只需要加1后返回结果就行了,而后置运算需要建立变量保存加1后的值,并把加1前的值返回。
但是,有一种情况下我们一般都是用后置运算,就是访问容器或者数组时:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> number;
for(int i = 0; i < 5 ;i++)
{
number.push_back(i);
}
vector<int>::const_iterator it = number.begin();
while(it != number.end())
{
cout<<*it++<<endl;
}
return 0;
}
因为后自增优先级高于解引,所以*it++相当于*(it++),即先进行自增操作,然后返回自增前的数,然后解引。这时如果使用前置操作++it,就会报错了。