1

这可能吗?它甚至有意义吗?例如,如果我有一个地图的比较函数,我需要(pos 1)作为键(按顺序):

ac ab aa bc ba cb

但后来我可能想得到订单:

aa ab ac ba bc cb

我知道我可以从那里得到更低/更高并进行比较。另外,如果我有后者的比较功能怎么样。是否也可以通过不同的比较函数和相同的地图来完成先验?

4

1 回答 1

1

An::std::map是一种以特定顺序保存元素的复杂数据结构。重新排序这个数据结构意味着完全破坏它并从头开始重新创建它。所以不,这不能完全按照您指定的方式完成。

但它是可以做到的。它需要多个映射,并且有效地为非平凡数据执行空间需要您存储指向数据的指针而不是数据本身。在这种情况下如何处理密钥取决于密钥是什么。在某些情况下,您可能还想存储指向键的指针,或者可能只是再次使用数据指针并让比较函数从数据中提取键。

于 2012-10-05T23:37:14.720 回答