我期待着解决一个首先需要对一些数据进行排序的问题。
示例-std::multimap
中的键-> 值。
它根据键自动按升序存储数据。
但是出现问题,当我需要根据重复的键的值对其进行排序时。
我尝试了一种愚蠢的方法,只是将一组重复的 key 转移到一个新的std::multimap
中,然后进行排序和存储,但是重复编码太多,无法实现导致空间和时间复杂度增加的一件事。
例如:
Key - Values
9 - e
3 - b
1 - c
1 - a
5 - d
9 - a
排序值预期为:
1 - a
1 - c
3 - b
5 - d
9 - a
9 - e
但是使用multimap的输出将返回:
1 - c
1 - a
3 - b
5 - d
9 - e
9 - a
并且当存在与 key 对应的多组 value 时,此问题进一步升级。
由于我是C++
的新手,所以我无法弄清楚如何使用预先存在的容器。
这个东西很容易在SQL
中实现,但是在C++
中却不知道。
答案 0 :(得分:3)
如果您可以稍微更改数据结构,
std::pair<int, char>
中的 std::vector ,然后
对其进行相应的排序,std::set<std::pair<int, char>>
,它将根据std::pair
的默认opererator<
进行排序。