set和multiset容器簡介
開發工具與關鍵技術:c++、visualstudio
set 是乙個集合容器,其中所包含的元素是唯一的,集合中的元素按一定的順序排列。它其他的
容器不同,它是不能指定位置插入的,它的元素插入過程是按排序規則插入的。
set雖然不能指定位置插入,但是在插入和刪除操作較快,因為set採用紅黑樹變體的資料結構
實現,紅黑樹屬於平衡二叉樹。
但是set不能直接訪問元素,不可以使用at.(pos)與操作符。
那麼set和multiset的區別:set 支援唯一鍵值,每個元素值只能出現一次;而 multiset 中同一值可
以出現多次,雖然set和multiset有區別,但是其他的基本一樣。
不可以直接修改 set 或 multiset 容器中的元素值,因為該類容器是自動排序的。如果希望修改一
個元素值,必須先刪除原有的元素,再插入新的元素。
下面是set容器的使用示範
這是set容器的演示,那麼我們可以在結果圖看到六個元素,但是我們上面for迴圈增加隨機數5個,後面又
增加 了5個10,而在set容器中遍歷出來的只有6個,少了4個10。
我之前說過set和multiset的區別, set支援唯一鍵值,每個元素值只能出現一次,意思是set容器中乙個元素只能出現一次,所以剛才新增的5個10就只剩乙個了。
下面是multiset的簡單演示,大體內容和set演示一樣。
我們可以看到的是multiset容器和set容器不同,multiset容器把相同的元素也儲存了,而set容器不會,
它們都是會自動排序的容器,而且元素搜尋速度快,安插元素速度快無論在**安插,但是不能隨機訪問。
以上是set和multiset容器的簡單介紹。
set容器和multiset容器的區別
無法使用和at方式訪問 for int i 0 i s.size i cout endl voidm const multiset int m cout endl void test else multiset容器與set區別在於前者可以插入重複元素 multiset int m1 multiset...
關聯式容器 set和multiset
set的特性是,所有的元素都會根據元素的鍵值自動排序。set的元素不像map那樣可以同時擁有實值 value 和鍵值 key set元素的鍵值就是實值,實值就是鍵值。set不允許兩個元素擁有相同的鍵值。不能通過set的迭代器改變set的元素值,因為set元素的值就是其鍵值,關係到set元素的排列規則...
C STL容器篇set和multiset
set和multiset和特點 通常底層由紅黑樹實做而成,會將放入的元素自動排序,所以其優點為搜尋元素時具有良好的效能,使用時需包含標頭檔案set,開啟std命名空間。set和multiset不同之處 set不能放相同的元素,重複放入相同的元素只會放入乙個,multiset可以放入相同的元素。set...