1

我正在尝试为类似科学实验的大量(数亿)结果实现存储。一个实验具有许多离散值属性(如发射器的晶格点、接收器的晶格点、发射事件的时间、发射和接收器处的温度和海拔等)和实验结果(如发射强度、接收强度等)。数据作为一个巨大的输入流输入。

我想设计一个存储结构,允许在几个离散维度(表示属性)中组织输入数据。我还希望能够获得与某个属性值相关的所有实验结果(例如,“来自格点 #10 的所有实验”或“在海拔 100m 处接收到发射的所有实验”。这样的选择应该形成一个允许进行一些整体处理的数组(例如对此类选择集的结果进行平均)。

什么是允许如此快速搜索和组合的适当 C++ 数据结构(最好由 STL 制成)?

我听说我想要的东西与Filter (high-order function)有某种关系,但我不擅长函数式编程。

4

1 回答 1

2

您描述的问题似乎是数据库的典型用例。如果您出于某种原因不想使用数据库或想要仅使用 c++ 的解决方案,也许您可​​以从流行的 DB-s 的实现方式中获得一些想法。例如,一些关系数据库使用 B+ 树。

于 2013-05-22T14:10:59.270 回答