Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 存储变量ID和值的有效方法是什么?_C_Data Structures - Fatal编程技术网

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

C 存储变量ID和值的有效方法是什么?,c,data-structures,C,Data Structures,我希望将我的数据存储在一个数据结构中,使我能够高效地执行以下操作: 我有10个类型为1的数组和10个类型为2的数组,每个数组有100个元素。每个数组存储100个变量的值。伴随着这些,我有20个包含相应变量ID的数组。 类型1的数组总共存储1000个变量的值,类型2的数组存储相同1000个变量的不同值 现在,我需要取类型1数组和类型2数组中变量值的差异。设A为类型1的数组之一。问题是A中的变量将分布在所有10个类型为2的数组中 散列映射没有用处,因为我还需要迭代每个数组中的值。有什么想法吗?如果你

我希望将我的数据存储在一个数据结构中,使我能够高效地执行以下操作:

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

现在,我需要取类型1数组和类型2数组中变量值的差异。设A为类型1的数组之一。问题是A中的变量将分布在所有10个类型为2的数组中


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

如果你打算经常做这样的操作,你可能想在程序启动时构造和索引一次(构造的时间复杂度
O(n^2)
然后再参考它

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

std::map< IdType, LookupEntry > index;
struct LookupEntry{
A*项目1;
B*项目2;
};
std::mapindex;
这将允许您线性遍历
A
类型的数组,并在固定时间内从
B
类型的数组中获取值。您还可以用类似的方式从
A
中减去
B


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

我的评论很愚蠢,所以我删除了它。使用各种哈希映射可能是您的最佳选择,即使您必须使用其中的10种。