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将递增,然后显示值。在某些情况下,这确实很重要。这两种情况下的运算符重载不同!