C STL set集合容器常用用法

2021-06-29 00:54:46 字數 1048 閱讀 7924

set集合容器:實現了紅黑樹的平衡二叉檢索樹的資料結構,插入元素時,它會自動調整二叉樹的排列,把元素放到適當的位置,以保證每個子樹根節點鍵值大於左子樹所有節點的鍵值,小於右子樹所有節點的鍵值;另外,還得保證根節點左子樹的高度與右子樹高度相等。

平衡二叉檢索樹使用中序遍歷演算法,檢索效率高於vector、deque和list等容器,另外使用中序遍歷可將鍵值按照從小到大遍歷出來。

構造set集合主要目的是為了快速檢索,不可直接去修改鍵值。

常用操作:

1.元素插入:insert()

2.中序遍歷:類似vector遍歷(用迭代器)

3.反向遍歷:利用反向迭代器reverse_iterator。

例:sets;

......

set::reverse_iterator rit;

for(rit=s.rbegin();rit!=s.rend();rit++)

4.元素刪除:與插入一樣,可以高效的刪除,並自動調整使紅黑樹平衡。

sets;

s.erase(2);        //刪除鍵值為2的元素

s.clear();

5.元素檢索:find(),若找到,返回該鍵值迭代器的位置,否則,返回最後乙個元素後面乙個位置。

sets;

set::iterator it;

it=s.find(5);    //查詢鍵值為5的元素

if(it!=s.end())    //找到

cout<<*it<

else            //未找到

cout<<"未找到";

6.自定義比較函式

(1)元素不是結構體:

例://自定義比較函式mycomp,過載「()」操作符

struct mycomp

}sets;

......

set::iterator it;

(2)如果元素是結構體,可以直接將比較函式寫在結構體內。

例:struct info

}sets;

......

set::iterator it;

C STL set集合容器常用用法

set集合容器 實現了紅黑樹的平衡二叉檢索樹的資料結構,插入元素時,它會自動調整二叉樹的排列,把元素放到適當的位置,以保證每個子樹根節點鍵值大於左子樹所有節點的鍵值,小於右子樹所有節點的鍵值 另外,還得保證根節點左子樹的高度與右子樹高度相等。平衡二叉檢索樹使用中序遍歷演算法,檢索效率高於vector...

C STL set容器常用用法

set是stl中一種標準關聯容器。它底層使用平衡的搜尋樹 紅黑樹實現,插入刪除操作時僅僅需要指標操作節點即可完成,不涉及到記憶體移動和拷貝,所以效率比較高。set,顧名思義是 集合 的意思,在set中元素都是唯一的,而且預設情況下會對元素自動進行公升序排列,支援集合的交 set intersecti...

C STL set容器常用用法

set是stl中一種標準關聯容器。它底層使用平衡的搜尋樹 紅黑樹實現,插入刪除操作時僅僅需要指標操作節點即可完成,不涉及到記憶體移動和拷貝,所以效率比較高。set,顧名思義是 集合 的意思,在set中元素都是唯一的,而且預設情況下會對元素自動進行公升序排列,支援集合的交 set intersecti...