C Set常用用法

2021-06-29 11:36:42 字數 2143 閱讀 2633

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.

set的含義是集合,它是乙個有序的容器,裡面的元素都是排序好的,支援插入,刪除,查詢等操作,就

像乙個集合一樣。所有的操作的都是嚴格在logn時間之內完成,效率非常高。

set和multiset的區別是:set插入的元素不能相同,但是multiset可以相同。

建立 multisetbase;

刪除:如果刪除元素a,那麼在定義的比較關係下和a相等的所有元素都會被刪除

base.count( a )

:set能返回0或者1,multiset是有多少個返回多少個.

set和multiset都是引用標頭檔案,複雜度都是logn

7.自定義類,需要過載運算子才能使用set

#include

#include

using namespace std;

typedef struct newtype;

struct compare

//there is no ().

};//the 「; 」

ishere;

setelement;

int main()

element

自動排序是按照char s的大小排序的; 8.

set的基本操作:

begin()

返回指向第乙個元素的迭代器

clear()

清除所有元素

count()

返回某個值元素的個數

empty()

如果集合為空,返回true

end()

返回指向最後乙個元素的迭代器

equal_range()

返回集合中與給定值相等的上下限的兩個迭代器

erase()

刪除集合中的元素

find()

返回乙個指向被查詢到元素的迭代器

get_allocator()

返回集合的分配器

insert()

在集合中插入元素

lower_bound()

返回指向大於(或等於)某值的第乙個元素的迭代器

key_comp()

返回乙個用於元素間值比較的函式

max_size()

返回集合能容納的元素的最大限值

rbegin()

返回指向集合中最後乙個元素的反向迭代器

rend()

返回指向集合中第乙個元素的反向迭代器

size()

集合中元素的數目

swap()

交換兩個集合變數

upper_bound()

返回大於某個值元素的迭代器

value_comp()

返回乙個用於比較元素間的值的函式

C Set常用用法

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

C Set常用用法

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

C Set常用用法

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