STL 按排序顺序存储数字

STL to store the numbers in sorted order

本文关键字:数字 顺序存储 排序 STL      更新时间:2023-10-16

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

如果我理解你可能是一个标准::多集它将存储重复项,但是当您迭代容器时,您将按排序顺序获取它们

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

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

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

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

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

我向您推荐以下内容:

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

您还可以将数据存储到std::vector/std::deque/std::list中,然后使用 std::sort 函数对它们进行排序,该函数位于 <algorithm> 标头处。