c set和multiset的操作

2021-07-22 08:51:48 字數 1118 閱讀 9953

set和multiset這些黑科技什麼的,能用的話當然是很茲瓷的~(≧▽≦)/~啦啦啦

ps:由於博主是蒟蒻,所以只知道那些操作是用來幹啥用的,並不清楚原理。。。

我只知道這東西是用rbt實現的,然而並不會寫(splay也行蛤)

這東西都不會的你還是別看了

include

然後定義就直接

(multi)set

《型別》 名稱

這兩個東西的區別是:set不含有重複元素,multiset含有

然後能定義的型別只要是能排序的應該都行。

set會自動把加入的元素排序

然後我們要用set《型別》 :: iterator來定義乙個迭代器

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()返回乙個用於比較元素間的值的函式

當然,你也可以用乙個struct巢狀過載運算子來幹一些事情。。。

如果你喜歡的話

C Set和multiset常用用法

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

C STL set和multiset的使用

std sets 那個s這個物件裡面存貯的元素是從小到大排序的,因為用std less作為比較工具。1,set的含義是集合,它是乙個有序的容器,裡面的元素都是排序好的,支援插入,刪除,查詢等操作,就 像乙個集合一樣。所有的操作的都是嚴格在logn時間之內完成,效率非常高。set和multiset的區...

C STL set和multiset的用法

c stl set和multiset的使用 std sets 那個s這個物件裡面存貯的元素是從小到大排序的,因為用std less作為比較工具。1,set的含義是集合,它是乙個有序的容器,裡面的元素都是排序好的,支援插入,刪除,查詢等操作,就 像乙個集合一樣。所有的操作的都是嚴格在logn時間之內完...