我正在尝试为类似科学实验的大量(数亿)结果实现存储。一个实验具有许多离散值属性(如发射器的晶格点、接收器的晶格点、发射事件的时间、发射和接收器处的温度和海拔等)和实验结果(如发射强度、接收强度等)。数据作为一个巨大的输入流输入。
我想设计一个存储结构,允许在几个离散维度(表示属性)中组织输入数据。我还希望能够获得与某个属性值相关的所有实验结果(例如,“来自格点 #10 的所有实验”或“在海拔 100m 处接收到发射的所有实验”。这样的选择应该形成一个允许进行一些整体处理的数组(例如对此类选择集的结果进行平均)。
什么是允许如此快速搜索和组合的适当 C++ 数据结构(最好由 STL 制成)?
我听说我想要的东西与Filter (high-order function)有某种关系,但我不擅长函数式编程。