一、set
set語法使用參閱:
set的特性
set所有元素都會根據元素的鍵值自動被排序
set中的鍵值就是實值,實值就是鍵值
默認情況下set不允許兩個元素重復
set的迭代器
不能根據set的迭代器改變set元素的值。因為其鍵值就是實值,實值就是鍵值,如果改變set元素值,會嚴重破壞set組織
在后面的源碼中會看到,set的迭代器set<T>::iterator被定義為底層RB-tree的const_iterator。因此set的迭代器是一種constant iterators
set擁有與list的相同的某些性質
當客戶端對它進行元素新增(insert)操作或刪除(erase)操作時,操作之前的所有迭代器在操作完成之后依然有效(當然,被刪除的那個元素的迭代器無效)
相關算法
STL提供了一組set/multiset相關算法,包括交集(set_interp)、聯集(set_union)、差集(set_difference)、對稱差集(set_symmetric_difference)
詳情會在后面