STL-學習筆記:關聯容器

set:所有元素都會根據元素的鍵值自動被排序不能通過set的迭代器改變set的元素值。


map:所有元素都會根據元素的鍵值自動被排序,map的所有元素都是pair,同時擁有key 和 value.map 不允許兩個元素擁有相同的鍵值。

注意:不能通過map的迭代器改變map的元素鍵值,因爲鍵值涉及到map元素的排序規則,任意改變map元素鍵值將會嚴重破壞map組織,修改value則是可以的。


set、map 與 list相同的特性:當客戶端對它進行元素新增操作(insert)或刪除操作(erase)時,操作之前的所有迭代器,在操作完成之後都依然有效。被刪除的元素的迭代器例外。

由於紅黑樹是一種平衡二叉搜索樹,自動排序的效果很不錯,所有標準的STL set 、map就是以紅黑樹爲底層機制。又由於set所開放的各種操作接口,紅黑樹也都提供了,所以幾乎所有的set操作行爲,都只是調用了紅黑樹的操作行爲而已。


multiset: 特性及用法於set完全相同,唯一的差別在於它允許鍵值重複。

multimap:允許鍵值重複




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章