似乎每当我在哈希表中看到单独的链接时,链表就会被用作存储冲突项的数据结构。为什么是这样?例如,为什么不能使用矢量/数组数据结构?
答案 0 :(得分:5)
你可以使用vector / ArrayList但是:
答案 1 :(得分:2)
如果您有一个对象向量,那么复制对象可能很昂贵,因此大多数通用哈希表都使用链接列表,这些列表在删除或插入时不需要复制。但是,在大多数代码中从哈希表中删除实际上是一种罕见的操作,并且插入应该很少(你不想长链),所以每当我自己实现哈希时,我总是使用链的向量,绝对没有问题。
另一种解释是,链接列表是人们盲目接触的容器 - 请参阅我的博客评论here以获得更多意见。