1

这是在 C++ 中用于对可能包含重复项的整数进行排序插入的理想 STL 容器。

4

5 回答 5

2

如果我理解你可能是一个 std::multiset 它会存储重复但是当你遍历容器时你会得到它们的排序顺序

于 2012-07-02T21:11:31.920 回答
0

std::multiset is probably the expected answer.

If the domain is relatively small (especially compared to the number of incidences), then counting sort can be used to good effect however. You would use std::vector<int> with the size of the domain. Then the value becomes the index, and the count becomes the number of incidences.

于 2012-07-02T21:31:19.200 回答
0

两个明显的选择是 heap/priority_queuemultiset. 堆只会让您在任何时候访问最大的元素,而multiset它将按排序顺序存储项目(带有重复项),允许您迭代它们。

随着有关您的具体问题的更多信息,可以提供更精确的答案。

于 2012-07-02T21:17:58.583 回答
0

如果查找和插入以该幅度交错,我宁愿建议一个简单的向量并在查找周期开始时对其进行排序。

于 2012-07-02T22:56:07.313 回答
0

我向您推荐以下内容:

  1. std::multiset<set>标题中找到
  2. std::priority_queue<queue>标题中找到

您还可以将数据存储到 a 中std::vector/std::deque/std::list,然后使用在标题std::sort中找到的函数对它们进行排序。<algorithm>

于 2012-07-03T10:28:17.043 回答