如何在 c++ 中使用不同的键引用数据
How to reference data with different key in c++
我是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
我希望能够通过id
或time
搜索数据,即
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
。 当键不唯一时,使用无序列图。
相关文章:
- 为什么将一个结构的引用设置为等于另一个结构只会更改一个数据成员?
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 设计将引用元素移动到开头的数据结构.C++
- 很好的语法来获取对向量/数组数据的大小引用?
- 在结构中使用 switch 引用结构中的数据C++
- 具有引用数据成员的结构不是文本类型吗?
- 引用数据的 int 指针
- 如何在 c++ 中使用不同的键引用数据
- 为什么INVOKE总是取消引用数据成员,而不是在可能的情况下调用
- 具有引用数据类型的函数多态性
- 如果类具有引用数据成员,为什么编译器不合成默认赋值运算符
- 引用数据类型的 & 符号是否返回引用本身的地址或它所引用的值
- 组合常量和非常量引用数据成员的单个类
- c++垃圾收集和循环引用数据
- 从成员函数引用数据成员时出错
- 基类静态引用数据成员上的C++对象切片行为的奇怪案例
- 具有引用数据成员的类的默认构造函数
- 引用数据成员和移动构造函数
- 引用数据类成员访问模式
- 如何处理赋值操作符和复制构造函数中的引用数据成员