例如:
for(int i=0;i<v.size();i++){
}
Run Code Online (Sandbox Code Playgroud)
是正常的顺序,
for(int i=v.size()-1;i>=0;i--){
}
Run Code Online (Sandbox Code Playgroud)
是逆序,
如何反转迭代版本的迭代器?
for(vector<int>::iterator it=v.begin();it!=v.end();++it){
}
Run Code Online (Sandbox Code Playgroud)
还有这个代码风格的反向版本?
for(int i : v){
}
Run Code Online (Sandbox Code Playgroud)
使用反向迭代器:
for(auto it = v.rbegin(); it != v.rend(); ++it){/*...*/}
Run Code Online (Sandbox Code Playgroud)
没有内置的方法来for反向进行范围,但您可以使用boost::adaptors::reversed:
for(auto& i : boost::adaptors::reversde(v)){/*...*/}
Run Code Online (Sandbox Code Playgroud)