【发布时间】:2020-07-08 10:04:28
【问题描述】:
我有一个值列表,其中有一些重复,例如: {1,2,2,3,3,3,3,7,8,1}
我想将此列表中的唯一值及其计数存储在数据结构中。
--------------
|value |count|
--------------
| 1 | 2 |
--------------
| 2 | 2 |
--------------
| 3 | 4 |
--------------
| 7 | 1 |
--------------
| 8 | 1 |
--------------
哪种 c++ 标准库数据结构这样做效率最高?
编辑:我不会以任何方式修改结构,我只想知道计数,因为计数将帮助我确定编程问题的输出。
【问题讨论】:
-
一对向量或一对向量,取决于您最常见的访问模式。但一般都可以。
-
可以使用
std::map或std::unordered_map -
哪种 c++ stl 数据结构这样做效率最高 -- 您只列出了 10 个数字。在您的实际应用程序中,您希望拥有多少个唯一编号?一千?一百万?
-
@Damien 这两种结构的效率都低得多。除非您需要它们提供的附加功能,否则不要使用它们。
-
@KonradRudolph 如果我们不知道如何使用这种结构,就很难讨论效率。例如,
std::map通常用作获取每个值的计数的简单方法:m[x[i]]++;。
标签: c++ performance data-structures c++-standard-library