例如:
for(int i=0;i<v.size();i++){
}
是正常顺序,
for(int i=v.size()-1;i>=0;i--){
}
是倒序,
迭代器的反向版本怎么样?
for(vector<int>::iterator it=v.begin();it!=v.end();++it){
}
还有这种代码风格的反向版本吗?
for(int i : v){
}
最佳答案
使用 reverse iterator :
for(auto it = v.rbegin(); it != v.rend(); ++it){/*...*/}
没有内置的方法可以反向执行基于范围的 for
,但您可以使用 boost::adaptors::reversed
:
for(auto& i : boost::adaptors::reversde(v)){/*...*/}
关于c++ - 如何用迭代器反向迭代 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30227835/