C++ set是一種標(biāo)準(zhǔn)庫(kù)容器,它可以存儲(chǔ)不重復(fù)的元素,并按照一定的順序排列。
set的特點(diǎn)是:
- set中的元素是唯一的,不能有重復(fù)的元素。
- set中的元素是有序的,可以按照自然順序或者自定義的比較函數(shù)進(jìn)行排序。
- set中的元素是不可修改的,只能插入或刪除,不能修改已有的元素。
- set支持快速的查找、插入和刪除操作,時(shí)間復(fù)雜度為O(log n)。
set的用法如下:
- 創(chuàng)建set對(duì)象:可以使用默認(rèn)構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、初始化列表或者范圍構(gòu)造函數(shù)來(lái)創(chuàng)建set對(duì)象。
- 插入元素:可以使用insert()函數(shù)或者emplace()函數(shù)來(lái)向set中插入元素,如果插入的元素已經(jīng)存在,則不會(huì)有任何效果。
- 刪除元素:可以使用erase()函數(shù)或者clear()函數(shù)來(lái)刪除set中的元素,erase()函數(shù)可以刪除指定的元素或者范圍內(nèi)的元素,clear()函數(shù)可以清空整個(gè)set。
- 查找元素:可以使用find()函數(shù)或者count()函數(shù)來(lái)查找set中是否存在某個(gè)元素,find()函數(shù)返回一個(gè)指向該元素的迭代器,如果不存在則返回end(),count()函數(shù)返回該元素出現(xiàn)的次數(shù),對(duì)于set來(lái)說(shuō),只能是0或1。
- 遍歷元素:可以使用迭代器或者范圍for循環(huán)來(lái)遍歷set中的元素,由于set中的元素是有序的,所以遍歷的順序也是有序的。
set是一種非常實(shí)用的容器,它可以用來(lái)去除重復(fù)的元素,或者實(shí)現(xiàn)集合的運(yùn)算,如并集、交集、差集等。C++ set是一種基于紅黑樹(shù)實(shí)現(xiàn)的平衡二叉搜索樹(shù),它保證了插入、刪除和查找操作的高效性。
C++相關(guān)課程推薦 C++相關(guān)課程