C++11 如何将元素添加到地图<;int,int>;。。。因此,它们在地图中以非递增顺序存储

C++11 如何将元素添加到地图<;int,int>;。。。因此,它们在地图中以非递增顺序存储,c++11,stl,c++14,c++17,C++11,Stl,C++14,C++17,如何以非递增顺序对值进行排序 map-mp; mp[5]=7;//{5->7} mp[3]=9;//{5->7,3->9} mp[4]=9;//{5->7,4->9,3->9} 我们使用了std::greater而不是默认的std::lesser请参见 另外,请注意,您也可以使用反向迭代器(使用rbegin()/rend()方法)反向迭代: #include <iostream> #include <map> int main() { std::map<i

如何以非递增顺序对值进行排序

map-mp;
mp[5]=7;//{5->7}
mp[3]=9;//{5->7,3->9}
mp[4]=9;//{5->7,4->9,3->9}
我们使用了
std::greater
而不是默认的
std::lesser
请参见


另外,请注意,您也可以使用
反向迭代器
(使用
rbegin()/rend()
方法)反向迭代:

#include <iostream>
#include <map>

int main()
{
  std::map<int, int, std::greater<int>> mp; 
  mp[5] = 7;
  mp[3] = 9;
  mp[4] = 9;

  for (auto [k, v] : mp)
  {
    std::cout << "\n" << k << "->" << v;
  }
  return 0;
}
5->7
4->9
3->9
  auto iter = mp.rbegin();
  const auto iter_end = mp.rend();

  while (iter != iter_end)
  {
    std::cout << "\n" << iter->first << "->" << iter->second;
    ++iter;
  }
3->9
4->9
5->7