【发布时间】:2021-07-22 07:04:58
【问题描述】:
假设一个数组分配了 10 亿个整数,但实际上数组中只有 1000 个元素被填充。我想遍历一个 C 数组,但理想情况下只使用分配的元素。我知道有一个稀疏矩阵之类的东西可以做到这一点,但是需要第二个数组,然后我必须保持第二个数组的长度。所以我想问一下,是否可以在没有第二个数组的情况下完成它?
【问题讨论】:
-
为什么不使用将
index映射到integer的哈希表? -
它是映射缓冲区吗?
-
@tstanisl 嘿嘿,hashtable其实是个好主意,但是问题是分配的元素个数不是一定的,hashtable的“key”其实是唯一的,没有经过hash。从速度方面来说,hash table 会不会比数组方式更高效?
-
而数组只是malloc分配的动态数组
-
您想按索引顺序迭代元素吗?或者也许在他们的插入顺序中?插入顺序允许非常快速的插入和搜索。