如何在 c++ 中使用不同的键引用数据

How to reference data with different key in c++

本文关键字:引用 数据 c++      更新时间:2023-10-16

我是C++新手,需要存储数据集。数据集如下所示

id | time | value
01 |   1  |   1
01 |   2  |   0
01 |   3  |   1
01 |   4  |   0
01 |   5  |   1
02 |   1  |   2
02 |   2  |   3
02 |   3  |   7
02 |   4  |   9
02 |   5  |   5

我希望能够通过idtime搜索数据,即

GetValueByID(data, '01')
# id | time | value
# 01 |   1  |   1
# 01 |   2  |   0
# 01 |   3  |   1
# 01 |   4  |   0
# 01 |   5  |   1
GetValueByID(data, '2')
# id | time | value
# 01 |   2  |   0
# 02 |   2  |   3

执行此操作的最节省内存的方法是什么? 谢谢!

最节省内存的方法是创建一个具有 ID、Time 和 Value 成员的类,然后使用该类的std::vector

为了提高运行时效率,您需要创建一个索引表std::map,其中包含搜索键字段和矢量中项目的索引。 为 ID 创建一个地图,为时间字段创建另一个地图。 这是数据库表的常用方法。

编辑 1:重复
如果键字段唯一,则使用std::map。 当键不唯一时,使用无序列图。