如何以升序输出unordered_map中的元素?

Sar*_*rah 3 c++ stl unordered-map

我在 unordered_map 中存储了一些中间结果。现在当试图输出它时,它显示键是按降序排列的。有没有办法以其他顺序显示它?如何?

101*_*010 6

您可以在 a 中复制您的元素,std::vector然后用于std::sort根据您的偏好升序/降序对此向量进行排序,然后输出它:

std::unordered_map<int, int> um {{2, 3}, {6, 7}, {0, 5}};
std::vector<std::pair<int, int>> sorted_elements(um.begin(), um.end());
std::sort(sorted_elements.begin(), sorted_elements.end());
Run Code Online (Sandbox Code Playgroud)

现场演示

至于为什么不能对无序的 STL 容器进行排序,请看这里