2014-04-21 43 views
2

我必須存儲10個元素的類型卡(用戶定義的類)。我無法決定是使用矢量還是使用列表。以下是我對結構進行操作:使用哪一個?向量或列表

  1. 追加或結構 結束插入(更好的去與向量)。

  2. Ramdom訪問(要訪問的元素可以在結尾,開始或結構中的任何位置)(再次向量是更好的選擇)。

  3. 刪除隨機訪問的元素,即從開始或結束或任何位置刪除元素 (僅適用於結束位置的向量,其他列表首選)。

  4. 將元素從一個位置移動到另一個位置,這樣該元素就不會與所需位置的元素交換,但它會插入 (List在這裏好得多)。

  5. 要以同樣的方式移動多個元素作爲點4 (同樣,我寧願名單)

所以,可以請你指導我哪一個選擇。

謝謝!

+2

你是否將向量存儲在向量/列表中?如果不是,卡類的大小是多少?現代處理器非常適合中小型陣列。向量消除了列表的指針操作。 – ooga

+0

不,我不存儲指針。 而且班級的大小是40. –

回答

3

聽起來像你已經完成了你的向量和列表的研究,你可以看到有一些衝突的要求。另一件要考慮的事情可能是這些行動的頻繁發生。 I.e您多久會期望從集合中插入或刪除。另一個考慮因素是集合的大小,10個元素是非常小的集合,因此複製10個元素並不是什麼大問題,除非你非常頻繁地做。我的默認選擇是矢量,但您可以分析兩者以查看哪個更好。

+0

那麼,如何描述它們呢? 只有10個值,他們都將在幾乎同一時間執行? –

+1

你可以嘗試在一百萬次迭代循環中做它。這應該顯示出一些差異。 –

+0

那麼,如果1000次迭代將顯示出顯着差異,那意味着只有10個元素沒有顯着變化。因此,使用它們中的任何一個都不會有什麼區別。 –

相關問題