C++11 如何在不使用auto关键字的情况下迭代map::crbegin()

C++11 如何在不使用auto关键字的情况下迭代map::crbegin(),c++11,stl,c++17,C++11,Stl,C++17,我已经做了一个映射,我想以相反的顺序迭代它。 我知道我可以这样使用自动关键字来完成 #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_pa

我已经做了一个映射,我想以相反的顺序迭代它。 我知道我可以这样使用自动关键字来完成

#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++;
   }  
}
#包括
使用名称空间std;
int main()
{ 
map mp;
mp.插入件(制作成对(3,30));
mp.插入件(配对(4,90));
mp.插入(配对(2130));
mp.插入件(制作成对(1,20));
mp.插入件(制作成对(5,10));
auto it=mp.crbegin();
while(it!=mp.crend())
{

cout正确的嵌套类型名称是
const\u reverse\u iterator
。因此,这将编译:

map<int,int>::const_reverse_iterator it = mp.crbegin();
map::const\u reverse\u迭代器it=mp.crbegin();

然而,
auto
可能会引起争议,在这里使用它可能是常识。

正确的嵌套类型名称是
const\u reverse\u iterator
。因此,这将编译:

map<int,int>::const_reverse_iterator it = mp.crbegin();
map::const\u reverse\u迭代器it=mp.crbegin();
然而,尽管
auto
可能会引起争议,但在这里使用它可能是常识