(1) vector:將元素置于一個動態陣列中,可以隨機存盤元素(也就是用索引直接存取),
陣列尾部添加或洗掉元素非常迅速,但在中部或頭部就比較費時,
*代碼演示:*
取:

at在下標越界時會拋出例外,我們能捕獲例外進行處理;而[]下標越界會讓程式直接終止;

建構式:
cbegin, cend, crbegin, crend回傳的是常量迭代器,不能通過迭代器修改vector元素的值,




插入(insert):值得注意的是,insert函式回傳值是一個迭代器,指向新添加的第一個元素:

洗掉(erase):

洗掉一段內容時,前閉后開

front函式,回傳第一個元素的參考

crbegin(),crend() 倒著輸出







(2) deque:“double end queue”的縮寫,也就是雙端佇列,
*deque的實作相比于vector有些復雜,但本質仍然是優化過的動態陣列,只不過相比于單純的動態陣列,在前面添加或洗掉元素非常快了,*
*可以隨機存盤元素,*頭部和尾部添加或洗掉元素都非常快(略慢與vector),但在 中間插入元素比較費時(和vector差不多),
*代碼演示:*
可以在前面添加和洗掉、可以隨機存取元素([]、at):

(3) list:本質就是鏈表,所以自然具有了鏈表的屬性,
*不能隨機存取元素(也就是list無法用索引存取元素)*,在任何位置插入和洗掉元素都比較迅速,(在任何位置插入洗掉元素的時間相同,在元素頭部操作慢于deque,在元素尾部操作慢于deque和vector)

(4) string:


(5) map/multimap:使用“紅黑樹”實作,是一種高度平衡的二叉樹,
內部元素是成對的“key/value”,也就是“鍵值/實值”,內部元素依據其鍵值自動排序,map內部相同的鍵值只能出現一次,multimap則可以出現多次,
*代碼演示:*

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/551715.html
標籤:其他
上一篇:1分鐘了解C語言正確使用位元組對齊及#pragma pack的方法
下一篇:返回列表
