这是在C ++中使用的理想STL容器,用于可能包含重复项的整数的排序插入。
答案 0 :(得分:2)
如果我理解你可能是std :: multiset 它将存储重复项,但是当您遍历容器时,您将按排序顺序获取它们
答案 1 :(得分:0)
两个显而易见的选择是堆/ priority_queue
或multiset
。堆只允许您在任何时候访问最大的元素,而multiset
将按排序顺序存储项目(带有重复项),允许您迭代它们。
有关您的具体问题的更多信息,可以提供更精确的答案。
答案 2 :(得分:0)
std::multiset
可能是预期的答案。
如果域相对较小(特别是与发生次数相比),则可以使用计数排序来获得良好效果。您可以将std::vector<int>
与域的大小一起使用。然后该值成为索引,计数变为发生次数。
答案 3 :(得分:0)
如果查找和插入与该幅度交错,我宁愿建议一个简单的向量,并在查找周期开始时对其进行排序。
答案 4 :(得分:0)
我建议您使用以下内容:
std::multiset
标题中找到了<set>
在std::priority_queue
标题<queue>
醇>
您还可以将数据存储到std::vector/std::deque/std::list
中,然后使用std::sort
功能对<algorithm>
功能进行排序。