STL 按排序顺序存储数字
STL to store the numbers in sorted order
这是理想的 STL 容器,用于C++中可能包含重复项的整数的排序插入。
如果我理解你可能是一个标准::多集它将存储重复项,但是当您迭代容器时,您将按排序顺序获取它们
两个明显的选择是堆/priority_queue
或multiset
。堆将只允许您在任何时候访问最大的元素,而multiset
将按排序顺序存储项目(带有重复项),允许您迭代它们。
有了更多关于您的具体问题的信息,可以提供更精细的答案。
std::multiset
可能是预期的答案。
如果域相对较小(特别是与发生率相比),则可以使用计数排序来获得良好的效果。 您将std::vector<int>
与域的大小一起使用。 然后,该值成为索引,计数成为发生率。
如果查找和插入与该量级交错,我宁愿建议一个简单的向量并在查找周期开始时对其进行排序。
我向您推荐以下内容:
-
std::multiset
在<set>
标题中找到 -
std::priority_queue
在<queue>
标题中找到
您还可以将数据存储到std::vector/std::deque/std::list
中,然后使用 std::sort
函数对它们进行排序,该函数位于 <algorithm>
标头处。
相关文章:
- 如何按数字顺序插入链表节点?
- 将非数字字符串存储为二进制整数
- 将字符指针按顺序存储在 map 中 std::map<char*, int> mymap。将其存储为字符或字符串不是一个选项
- 如何仅将数字值存储在给定输入文件中的2D数组中?(没有指针)
- 按数字顺序对数字进行排序
- 以相反顺序存储整数值
- C++以相反的顺序存储字符串
- 数字的存储方式
- STL 按排序顺序存储数字
- 数组是否以相反的顺序存储在 C/C++中
- 为什么 libstdc++ 以相反的顺序存储 std::tuple 元素
- 按顺序存储不同类型的对象
- 如何使数组中的每个数字都存储一个字符串,就像constchar*argv[]所做的那样
- 不能算出这个按数字顺序打印数字的c++小程序的最后一个
- 为什么 file.write() 不按照我给出的顺序存储字节?C++
- 分割一个数字并存储在int数组中
- 先按字母顺序,然后按数字顺序对数字列表进行排序
- 仅读取文本文件中的数字并存储在数组中.之后,读取第一行来存储在数组中
- 如何在c++中按列主顺序存储二维数组中的值
- 如何在Vector中按字母顺序存储字符串