使用范围for循环以相反顺序迭代向量?

问题描述 投票:2回答:3

我想以相反的顺序迭代向量,我知道我可以通过下面的代码轻松完成它

#include<bits/stdc++.h>
using namespace std;
int main()
{
    vector<int> v(10);
    for(auto it=v.rbegin();it!=v.rend();it++)
        cout<<*it<<"";
}

为了向前迭代,我们可以简单地通过下面的代码来完成。

for(auto it:v)
  cout<<it<<" ";

现在的任务是...

是否有可能像for(auto it:v) cout<<it<<" "那样进行反向迭代。如果是,那么如何?

c++ stl stdvector
3个回答
1
投票

Boost具有可用于此目的的反向迭代器适配器,有关详细信息,请参见here


1
投票

或者您也可以自己写一个。有点像


1
投票

如果可以使用C ++ 20,则可以使用范围库,因此可以使用std::ranges::reverse_view

© www.soinside.com 2019 - 2024. All rights reserved.