set集合容器

2021-07-16 03:41:41 字數 1435 閱讀 9133

/*  set集合容器:

呼叫標頭檔案:

#includeusing namespace std;

詳細用法(部分):

sett ------ 定義乙個int型別的容器,注意set裡的每個元素只會出現1次

t.insert(k) ------ 插入元素k,多次插入同乙個元素後面無效

t.count(k) ------ 判斷元素k是否在容器內

t.erase(k) ------ 刪除元素k,若不存在則刪除無效

t,clear() ------ 清空容器

t.size() ------ 返回容器現有元素個數

t.empty() ------ 判斷容器是否為空

想遍歷set裡的元素或進行進一步修改,必須定義對應迭代器,以下三種定義方法(迭代器類似於指標)

set::iterator it ------ 定義正向迭代器

set::reverse_iterator rit; ------ 定義反向迭代器

auto it = t.begin(); ------ 因為t.begin()返回正向迭代器,所以it自動被定義為正向迭代器,可適應其他所有操作

以下需要迭代器的操作:

t.begin() ------ 返回set中第乙個元素,型別為正向迭代器

t.rbegin() ------ 返回set中最後乙個元素,型別為反向迭代器

t.end() ------ 返回set中最後乙個元素,型別為正向迭代器

t.rend() ------ 返回set中第乙個元素,型別為反向迭代器

t.find(k) ------ 尋找k,若找到返回對應的迭代器,否則返回end();

t,insert(a, b) ------ 插入指標[a, b)之間的元素,已有元素不會再次插入

t.erase(it) ------ 刪除迭代器it對應的元素

t.erase(l, r) ------ 刪除迭代器[l, r)之間的元素

lower_bound(k) ------ 返回第乙個大於等於k的元素的迭代器

upper_bound(k) ------ 對於set這種元素唯一的容器,該操作與lower_bound(k)相同,只有一種情況不同,就是容器中若含有元素k,

該操作會返回k下乙個元素的迭代器

*/#include#includeusing namespace std;

sett;

int main(void)

set 集合容器

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

set集合容器

set集合容器 set的定義 set容器的標頭檔案 include 定義 set 鍵值 s set的優缺 1.set容器的檢索使用中序遍歷演算法,檢索效率高於vector deque list等容器。2.set容器會對插入的元素按照鍵值由小到大的順序排序。3.set集合的主要目的就是為了快速檢索。4...

set集合容器

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