有时候我会看到
for(vector<int>::iterator it=a.begin();it!=a.end();it++){
}
有时候
for(vector<int>::iterator it=a.begin();it!=a.end();++it){
}
当我尝试打印一些矢量进行测试时似乎没有区别,但不确定它是否在副作用方面有一些差异,它们之间有什么区别吗?
答案 0 :(得分:1)
在您的问题中,您复制了相同的代码,但标题表明您的混淆在于预增量(++it)
与后增量(it++)
。这里实际上有一个重要的区别:预增量运算符将递增it
并返回递增值。后增量运算符也将递增it
,但将返回旧值。相同的逻辑适用于前后递减运算符(--it)
和(it--)
。
然而,在for循环中,无论您使用哪种(前置或后置),行为都是相同的。