gpt4 book ai didi

c - 存储变量 ID 和值的有效方法是什么?

转载 作者:行者123 更新时间:2023-11-30 17:58:52 24 4
gpt4 key购买 nike

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

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

现在,我需要将类型 1 的数组中的变量值与类型 2 的数组中的变量值进行比较。设 A 为类型 1 的数组中的一个。问题是 A 中的变量将是将 10 个分布到所有 10 个类型 2 的数组中。

HashMap 没有用,因为我还需要迭代每个数组中的值。有什么想法吗?

最佳答案

如果您打算经常执行此类操作,您可能需要在程序启动时构造和索引一次(构造的时间复杂度为 O(n^2)),然后在稍后引用它。

struct LookupEntry {
A *item1;
B *item2;
};

std::map< IdType, LookupEntry > index;

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

或者,您可以遍历索引项并从另一个项中减去一项。

关于c - 存储变量 ID 和值的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11898318/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com