c++中set 的用法


1.關於set

C++ STL 之所以得到廣泛的贊譽,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封裝了許多復雜的數據結構算法和大量常用數據結構操作。vector封裝數組,list封裝了鏈表,map和set封裝了二叉樹等,在封裝這些數據結構的時候,STL按照程序員的使用習慣,以成員函數方式提供的常用操作,如:插入、排序、刪除、查找等。讓用戶在STL使用過程中,並不會感到陌生。

關於set,必須說明的是set關聯式容器。set作為一個容器也是用來存儲同一數據類型的數據類型,並且能從一個數據集合中取出數據,在set中每個元素的值都唯一,而且系統能根據元素的值自動進行排序。應該注意的是set中數元素的值不能直接被改變。C++ STL中標准關聯容器set, multiset, map, multimap內部采用的就是一種非常高效的平衡檢索二叉樹:紅黑樹,也成為RB樹(Red-Black Tree)。RB樹的統計性能要好於一般平衡二叉樹,所以被STL選擇作為了關聯容器的內部結構。

注意:

1、set中的元素都是排好序的

2、set集合中沒有重復的元素

 

2.set中常用的方法

begin()           返回set容器第一個元素的迭代器

end()         返回一個指向當前set末尾元素的下一位置的迭代器.

clear()            刪除set容器中的所有的元素

empty()       判斷set容器是否為空

max_size()       返回set容器可能包含的元素最大個數

size()        返回當前set容器中的元素個數

rbegin()       返回的值和end()相同

rend()          返回的值和begin()相同

erase(iterator)       刪除定位器iterator指向的值

erase(first,second)   刪除定位器first和second之間的值

erase(key_value),    刪除鍵值key_value的值

find()  ,                   返回給定值值得定位器,如果沒找到則返回end()。

insert(key_value)   

將key_value插入到set中 ,返回值pair<set<int>::iterator,bool>,bool標志着插入是否成功,而iterator代表插入的位置,若key_value已經在set中,則iterator表示的key_value在set中的位置。

inset(first,second)    將定位器first到second之間的元素插入到set中,返回值是void.

lower_bound(key_value) ,返回第一個大於等於key_value的定位器

upper_bound(key_value),返回最后一個大於等於key_value的定位器

 

 如果想要了解具體用法,點擊下面鏈接

https://blog.csdn.net/byn12345/article/details/79523516

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM