如何在不使用自动关键字的情况下迭代map :: crbegin()

问题描述 投票:0回答:1

我制作了一个[[map,我想以相反的顺序对其进行迭代。我知道我可以这样使用auto关键字来做到这一点

#include <bits/stdc++.h> using namespace std; int main() { map <int,int> mp; mp.insert(make_pair(3,30)); mp.insert(make_pair(4,90)); mp.insert(make_pair(2,130)); mp.insert(make_pair(1,20)); mp.insert(make_pair(5,10)); auto it = mp.crbegin(); while(it!=mp.crend()) { cout<<it->first <<" "<< it->second <<endl; it++; } }
我可以用什么代替

自动关键字?

我下面的代码给我编译错误。

#include <bits/stdc++.h> using namespace std; int main() { map <int,int> mp; mp.insert(make_pair(3,30)); mp.insert(make_pair(4,90)); mp.insert(make_pair(2,130)); mp.insert(make_pair(1,20)); mp.insert(make_pair(5,10)); map<int,int>::iterator it = mp.crbegin(); while(it!=mp.crend()) { cout<<it->first <<" "<< it->second <<endl; it++; } }

有可能吗?
c++11 stl c++17
1个回答
0
投票
正确的嵌套类型名称是const_reverse_iterator。因此,它将编译:

map<int,int>::const_reverse_iterator it = mp.crbegin();

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