C++ “之间的区别是什么?”;对于(vector<;int>;::迭代器it=a.begin();it!=a.end();it+;+;);及;对于(vector<;int>;::迭代器it=a.begin();it!=a.end();&x2B;&x2B;it)";

C++ “之间的区别是什么?”;对于(vector<;int>;::迭代器it=a.begin();it!=a.end();it+;+;);及;对于(vector<;int>;::迭代器it=a.begin();it!=a.end();&x2B;&x2B;it)";,c++,vector,iterator,C++,Vector,Iterator,有时我看到 for(vector<int>::iterator it=a.begin();it!=a.end();it++){ } for(vector::iterator it=a.begin();it!=a.end();it++){ } 有时 for(vector<int>::iterator it=a.begin();it!=a.end();++it){ } for(vector::iterator it=a.begin();it!=a.end();++it)

有时我看到

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

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

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

在你的问题中,你复制了相同的代码,但是标题表明你的困惑在于增量前
(++It)
与增量后
(It++)
。实际上这里有一个重要的区别:pre-increment操作符将递增
it
,并返回递增的值。“增量后”操作符也将增量
,但将返回旧值。同样的逻辑适用于减量前后运算符
(-it)
(it-)


但是,在for循环中,无论使用哪一个(pre或post),行为都是相同的。

您复制了相同的代码段两次。我看完全没有区别,是吗?如果您要打印每个代码段(它)。第一个It++将显示值,然后递增,++It将递增,然后显示值。在某些情况下,这确实很重要。这两种情况下的运算符重载不同!