STL以排序顺序存储数字

时间:2012-07-02 21:09:31

标签: c++ stl

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

5 个答案:

答案 0 :(得分:2)

如果我理解你可能是std :: multiset 它将存储重复项,但是当您遍历容器时,您将按排序顺序获取它们

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

std::multiset可能是预期的答案。

如果域相对较小(特别是与发生次数相比),则可以使用计数排序来获得良好效果。您可以将std::vector<int>与域的大小一起使用。然后该值成为索引,计数变为发生次数。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

我建议您使用以下内容:

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

    您还可以将数据存储到std::vector/std::deque/std::list中,然后使用std::sort功能对<algorithm>功能进行排序。