c++ std::按键的降序映射项
C++ std::map items in descending order of keys
如何使用按键值降序排列的std::map容器
例如,插入以下条目:
[2 , 5]
[1 , 34]
[3 , 67]
它们将在地图中按如下顺序排列:
position 0: [1, 34]
position 1: [2, 5]
position 2: [3, 67]
我可以反向遍历映射,但假设下次我插入[- 1,60]。它会被放在第一个位置吗?
当默认顺序不适合您时,请使用自定义比较器。
您将其作为第三个模板参数传递(通常默认为std::less<KeyType>
)。
在您的情况下,您可以使用std::greater
:
std::map<int, int, std::greater<int> > m;
示例代码:
#include <map>
#include <iostream>
#include <functional>
int main() {
std::map<int, int, std::greater<int>> m { {-1, 77}, {0, 42}, {1, 84} };
for (const auto& p : m)
std::cout << '[' << p.first << ',' << p.second << "]n";
}
输出结果:
[1,84]
[0,77]
[-1,42]
std::map
已经排序,所以您只需要使用reverse_iterator
遍历地图。
map不是数组。地图上没有所谓的"第n个位置"。(std::map
通常使用某种二叉搜索树来实现。)如果绝对不可避免地需要手动指定顺序,则使用std::vector<std::pair>
。
相关文章:
- 为什么我的递归函数按降序打印,然后按升序打印?
- 我正在尝试按降序对地图进行排序,但没有得到预期的结果?
- 如何在 c++ 中根据第二个元素按降序对列表进行排序
- 如何按矩阵行的总和降序对矩阵进行排序 C++.
- priority_queue使用降序向量实现最小堆的语法差异
- 插入按降序排序
- 将相同的键添加到低序映射
- 如何使用cpp编写选择排序算法以降序对元素列表进行排序?
- 我怎么不能按课程代码的降序对数字进行排序
- 如何使用布尔函数按降序对数组进行排序?
- 如何按降序排序?
- 程序,它接受用户输入的字符并按出现的降序显示它们
- 数组将排序排序为降序而不是升序
- 如何按降序对标准数组进行排序 - C++ 11.
- 如何按降序打印数组?
- 按降序C 排序矢量
- 使用相同的 for 循环按升序或降序遍历地图
- 使用QuickSort算法以降序排序向量
- 在c++中按降序打印映射值
- c++ std::按键的降序映射项