set集合容器

2021-07-11 12:17:07 字數 2141 閱讀 3036

set集合容器

【set的定義】

set容器的標頭檔案:#include

定義:set《鍵值》s;

【set的優缺】

1.set容器的檢索使用中序遍歷演算法,檢索效率高於vector、deque、list等容器。

2.set容器會對插入的元素按照鍵值由小到大的順序排序。

3.set集合的主要目的就是為了快速檢索。

4.set的缺點是不能直接修改容器中的鍵值。

【set的函式】

sets;

1. s.insert(x);             插入乙個鍵值x的資料,容器會對其自動排序

2. s.erase(x);             刪除鍵值x的資料

3. s.clear();                清空容器s

4.find(x);                    查詢鍵值為x的資料,返回該鍵值在迭代器的位置,查詢不到返回集合最後乙個元素                                             的位置,即end()

此處擴充套件乙個反向迭代器

反向迭代器的定義 : set::reverse_inerator rit;

rbegin()表示反向遍歷的開始位置,rend()表示結束位置

【set的基本操作】

1.set的插入,刪除,遍歷。

#include#includeusing namespace std;

int main()

{ sets;

s.insert(8);

s.insert(1);

s.insert(12);

s.insert(6);

// 第二次插入8,重複元素,不會插入

s.insert(8);

set::iterator it; // 前向迭代器

for(it=s.begin();it!=s.end();it++)

cout<<*it<<" ";

cout<::reverse_iterator rit; // 反向迭代器

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

cout<<*rit<<" ";

cout<

#include#includeusing namespace std;

int main()

{ sets;

s.insert(8);

s.insert(1);

s.insert(12);

s.insert(6);

s.insert(8);

s.insert(9);

s.insert(10);

set::iterator it;

it=s.find(6); // 查詢鍵值為6的元素,如果找到,返回鍵值在迭代器的位置,找不到返回最後乙個元素的位置,即end()

if(it!=s.end())

cout<<*it<

multiset多集合容器

multiset與set唯一的不同是,multiset允許重複的元素鍵值插入,而set則不允許

multiset容器刪除時,會刪除鍵值等於某個值得所有元素。

multiset容器查詢時,會返回第一次找到的迭代器的位置。

set 集合容器

簡單學習一下set集合容器 標頭檔案 include using namespace std sets 必須是有定義 運算子的型別 int,string 向s中加資料 s.insert elem 插入elem之後元素預設按公升序排序,集合中是沒有重複元素的,每個不同的元素只存乙個 s.clear 清...

set集合容器

set集合容器 呼叫標頭檔案 includeusing namespace std 詳細用法 部分 sett 定義乙個int型別的容器,注意set裡的每個元素只會出現1次 t.insert k 插入元素k,多次插入同乙個元素後面無效 t.count k 判斷元素k是否在容器內 t.erase k 刪...

set集合容器

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