首页 文章

将变量ID与值一起存储的有效方法是什么?

提问于
浏览
0

我希望将我的数据存储在一个数据结构中,这样我就可以有效地执行以下操作:

我有10个类型1的数组和10个类型为2的数组,每个数组包含100个元素 . 每个数组存储100个变量的值 . 伴随着这些,我有20个包含相应变量ID的数组 . 在类型1的总数组中,1000个变量的存储值和类型2的数组存储相同1000个变量的不同值 .

现在,我需要对类型1的数组中的变量值与类型2的数组的值进行区分 . 设A是类型1的数组之一 . 问题是A中的变量将分别为10跨所有10个类型2的数组 .

哈希映射没有用,因为我还需要迭代每个数组中的值 . 有任何想法吗?

1 回答

  • 0

    如果您打算经常执行此类操作,则可能需要在程序启动时构造和索引(构造具有 O(n^2) 时间复杂度),然后再引用它 .

    struct LookupEntry {
       A *item1;
       B *item2;
    };
    
    std::map< IdType, LookupEntry > index;
    

    这将允许您线性地遍历 A 类型的数组,并在恒定时间内从类型 B 的数组中获取值 . 您也可以用类似的方式从 A 中减去 B 项目 .

    或者,您可以浏览索引项并从另一项中减去一项 .

相关问题