链表与数组

时间:2014-08-31 19:25:23

标签: c++ c

对不起,如果已经问过这个......

为什么以及何时应该在向量上使用链接列表?我只是不喜欢所有那些指针开销...

据我所知:矢量更快,更紧凑,因为没有额外的指针,更容易实现;另外我认为链表没有利用空间局部性的原则,因为节点处于完全随机的内存位置,所以你的代码变得更慢......所以当你使用链表时,你增加了缓存未命中率你不会想做...

当然,列表的优点是可以避免动态内存分配溢出...

总之,我的问题是:你应该在哪里使用链接列表?您更喜欢哪种数据结构?

1 个答案:

答案 0 :(得分:1)

链接列表适用于您想要插入或移除项目而无需在固定时间内移动或插入/推送或弹出项目以及您不知道元素数量且可能不需要的情况随机访问。有关详细信息,请参阅this