2014-08-31 23 views
2

對不起,如果這已被問到...鏈表與數組

爲什麼和什麼時候應該使用鏈接列表向量?我只是不喜歡所有這些指針的開銷...

從我的知識:矢量更快,更緊湊,因爲沒有額外的指針,並且更容易實現;我也認爲鏈表不利用空間局部性原則,因爲節點處於完全隨機的內存位置,所以你的代碼變得更慢......所以當你使用鏈表時,你會增加你不想要的緩存未命中做...

當然名單的好處是,你可以避免與動態分配內存溢出......

在總結,我的問題是:你應該使用,如果有的話,鏈表在載體?你更喜歡哪個數據結構?

+0

谷歌也是一個很好的朋友:) – 2014-08-31 19:26:43

+0

當你確定性能差異足夠顯着時,默認爲向量和使用列表。 – chris 2014-08-31 19:37:02

+0

鑑於[tag:c]標籤,這不僅僅是'std :: list',而是一般的鏈表。 http://stackoverflow.com/q/2429217/179910 – 2014-08-31 19:38:06

回答

1

鏈接列表適用於您希望插入或刪除項目而無需在常量時間內移動或插入/推入或彈出項目以及不知道元素數量並且可能不需要隨機訪問的情況。欲瞭解更多信息,請參閱this