使用 range-for 循环以相反的顺序迭代向量? [英] Iterating a vector in reverse order with a range-for loop?

查看:46
本文介绍了使用 range-for 循环以相反的顺序迭代向量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I want to iterate a vector in reverse order , i know that i can do it easily by below code

#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 iterating in forward we can simply do by below code.

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

现在的任务是......

Now task is ...

是否可以进行类似于 for(auto it:v) cout<<it<<" " 的反向迭代.如果是,那么如何?

Is it possible to do reverse iterate similar to for(auto it:v) cout<<it<<" ". If YES then How?

推荐答案

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

If you can use C++20, you can use the ranges library and thus std::ranges::reverse_view:

vector<int> v(10);
std::ranges::reverse_view vReversed{v};

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

这篇关于使用 range-for 循环以相反的顺序迭代向量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆