如何使用 `std::multimap` 或任何其他容器对多个值进行排序?

How to use `std::multimap` or any other container to sort multiple values?

我期待解决首先需要对一些数据进行排序的问题。

示例 - Key -> Values in std::multimap.

根据key自动升序存储数据

但是问题出现了,当我需要根据 .

对重复的 进行排序时

我尝试了一种愚蠢的方法,只是简单地将一组重复的 key 转移到一个新的 std::multimap 中,然后排序并存储回去,但这太多了重复编码以实现单个事物导致增加 space 和时间复杂度。

例如:

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 的输出会 return:

1 - c
1 - a
3 - b
5 - d
9 - e
9 - a

当有多组 values 对应 key.

时,这个问题会进一步升级

由于我是 C++ 的新手,我无法弄清楚如何使用预先存在的容器来做到这一点。

这个东西在 SQL 中很容易实现,但在 C++ 中,我不知道。

如果稍微改变一下数据结构,

  1. 您可以使用 std::vectorstd::pair<int, char>,然后 相应地排序,
  2. 或者简单地使用 std::pairstd::set<std::pair<int, char>>, which will be sorted as per the default opererator<