(1) vector:將元素置于一個動態(tài)數(shù)組中,可以隨機(jī)存儲元素(也就是用索引直接存?。?/h2>
數(shù)組尾部添加或刪除元素非常迅速。但在中部或頭部就比較費(fèi)時。
*代碼演示:*
?。?br>
at在下標(biāo)越界時會拋出異常,我們能捕獲異常進(jìn)行處理;而[]下標(biāo)越界會讓程序直接終止;
構(gòu)造函數(shù):
cbegin, cend, crbegin, crend返回的是常量迭代器,不能通過迭代器修改vector元素的值。
插入(insert):值得注意的是,insert函數(shù)返回值是一個迭代器,指向新添加的第一個元素:
刪除(erase):
刪除一段內(nèi)容時,前閉后開
front函數(shù),返回第一個元素的引用
crbegin(),crend() 倒著輸出
(2) deque:“double end queue”的縮寫,也就是雙端隊(duì)列。
*deque的實(shí)現(xiàn)相比于vector有些復(fù)雜,但本質(zhì)仍然是優(yōu)化過的動態(tài)數(shù)組,只不過相比于單純的動態(tài)數(shù)組,在前面添加或刪除元素非??炝?。*
*可以隨機(jī)存儲元素。*頭部和尾部添加或刪除元素都非常快(略慢與vector)。但在 中間插入元素比較費(fèi)時(和vector差不多)。
*代碼演示:*
可以在前面添加和刪除、可以隨機(jī)存取元素([]、at):
(3) list:本質(zhì)就是鏈表,所以自然具有了鏈表的屬性。
*不能隨機(jī)存取元素(也就是list無法用索引存取元素)*。在任何位置插入和刪除元素都比較迅速。(在任何位置插入刪除元素的時間相同,在元素頭部操作慢于deque,在元素尾部操作慢于deque和vector)
(4) string:
(5) map/multimap:使用“紅黑樹”實(shí)現(xiàn),是一種高度平衡的二叉樹。
內(nèi)部元素是成對的“key/value”,也就是“鍵值/實(shí)值”,內(nèi)部元素依據(jù)其鍵值自動排序,map內(nèi)部相同的鍵值只能出現(xiàn)一次,multimap則可以出現(xiàn)多次。文章來源:http://www.zghlxwxcb.cn/news/detail-434415.html
*代碼演示:*文章來源地址http://www.zghlxwxcb.cn/news/detail-434415.html
到了這里,關(guān)于C++容器(vector、deque、list、map)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!