C++ Vector、List和Deque的區別 (整理)
C++ Vector、List和Deque的區別 (整理)
資料來源: https://www.itread01.com/content/1523965270.html
▲ Vector VS. List VS. Deque:
a、若需要隨機訪問操作,則選擇vector;
b、若已經知道需要存儲元素的數目,則選擇vector;
c、若需要隨機插入/刪除(不僅僅在兩端),則選擇list
d、只有需要在首端進行插入/刪除操作的時候,還要兼顧隨機訪問效率,才選擇deque,否則都選擇vector。
e、若既需要隨機插入/刪除,又需要隨機訪問,則需要在vector與list間做個折中-deque。
f、當要存儲的是大型負責類對象時,list要優於vector;當然這時候也可以用vector來存儲指向對象的指針,同樣會取得較高的效率,但是指針的維護非常容易出錯,因此不推薦使用。
▲ 使用原則:
(1)如果需要高效的隨機存取,而不在乎插入和刪除的效率,使用vector;
(2)如果需要大量高效的刪除插入,而不在乎存取時間,則使用list;
(3)如果需要高效的隨機存取,還要大量的首尾的插入刪除則建議使用deque,它是list和vector的折中;