“for(vector <int> :: iterator it = a.begin(); it!= a.end(); it ++)”和“for”(vector <int> :: iterator it = a.begin (!);它= a.end(); ++它)“

时间:2015-05-19 04:00:34

标签: c++ vector iterator

有时候我会看到

for(vector<int>::iterator it=a.begin();it!=a.end();it++){
}

有时候

for(vector<int>::iterator it=a.begin();it!=a.end();++it){
}

当我尝试打印一些矢量进行测试时似乎没有区别,但不确定它是否在副作用方面有一些差异,它们之间有什么区别吗?

1 个答案:

答案 0 :(得分:1)

在您的问题中,您复制了相同的代码,但标题表明您的混淆在于预增量(++it)与后增量(it++)。这里实际上有一个重要的区别:预增量运算符将递增it并返回递增值。后增量运算符也将递增it,但将返回旧值。相同的逻辑适用于前后递减运算符(--it)(it--)

然而,在for循环中,无论您使用哪种(前置或后置),行为都是相同的。