我想以相反的顺序迭代向量,我知道我可以通过下面的代码轻松完成它
#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<<" "
那样进行反向迭代。如果是,那么如何?
Boost具有可用于此目的的反向迭代器适配器,有关详细信息,请参见here。
或者您也可以自己写一个。有点像
如果可以使用C ++ 20,则可以使用范围库,因此可以使用std::ranges::reverse_view
: