我想以相反的顺序迭代一个向量,我知道我可以通过下面的代码轻松完成
#include<bits/stdc++.h>
using namespace std;
int main()
{
vector<int> v(10);
for(auto it=v.rbegin();it!=v.rend();it++)
cout<<*it<<"";
}
Run Code Online (Sandbox Code Playgroud)
为了向前迭代,我们可以简单地通过下面的代码来完成。
for(auto it:v)
cout<<it<<" ";
Run Code Online (Sandbox Code Playgroud)
现在的任务是...
是否可以进行类似于for(auto it:v) cout<<it<<" ". 如果是,那么如何?
如果您可以使用 C++20,则可以使用范围库,因此std::ranges::reverse_view:
vector<int> v(10);
std::ranges::reverse_view vReversed{v};
for(auto it : vReversed)
cout<<it<<" ";
Run Code Online (Sandbox Code Playgroud)