如何用迭代器反转迭代向量?

时间:2015-05-14 01:28:17

标签: c++

例如:

if (val.equals("admin")) {
    String hero = val;
}

是正常的订单,

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){

}

1 个答案:

答案 0 :(得分:5)

使用reverse iterator

for(auto it = v.rbegin(); it != v.rend(); ++it){/*...*/}

没有内置方法可以反向执行基于范围的for,但您可以使用boost::adaptors::reversed

for(auto& i : boost::adaptors::reversde(v)){/*...*/}