set學習 系統的學習

2022-05-06 15:42:09 字數 1438 閱讀 9350

set是stl中一種標準關聯容器。它底層使用平衡的搜尋樹——紅黑樹實現,插入刪除操作時僅僅需要指標操作節點即可完成,不涉及到記憶體移動和拷貝,所以效率比較高。set,顧名思義是「集合」的意思,在set中元素都是唯一的,而且預設情況下會對元素自動進行公升序排列,支援集合的交(set_intersection),差(set_difference) 並(set_union),對稱差(set_symmetric_difference) 等一些集合上的操作,如果需要集合中的元素允許重複那麼可以使用multiset。

下面介紹set的常用操作:

1:注意包含標頭檔案

set只有自加和自減運算!!!

s.begin()    返回set容器的第乙個元素的位址

s.end()    返回set容器的最後乙個元素之後的位址

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

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

s.insert()   插入乙個元素

s.erase()   刪除乙個元素

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

具體看**:

#include#include

using

namespace

std;

intmain()

迭代器的使用:

#include#include

using

namespace

std;

intmain()

修改:不能修改容器內資料,所以只能刪除某元素再插入要修改的數值

查詢:s.find()

如果容器內不存在該元素,返回值等於s.end();

#include#include

using

namespace

std;

intmain()

set的其它常用操作:

s.lower_bound() 返回第乙個大於或等於給定關鍵值的元素

s.upper_bound() 返回第乙個大於給定關鍵值的元素

s.equal_range() 返回一對定位器,分別表示 第乙個大於或等於給定關鍵值的元素 和 第乙個大於給定關鍵值

的元素,這個返回值是乙個pair型別,如果這一對定位器中哪個返回失敗,就會等於

s.end()

#include#include

using

namespace

std;

intmain()

如果要把set定義為降序:可以如下定義:

#include#include

using

namespace

std;

intmain()

set命令的學習

有時候我們需要直接在原變數進行加減操作就可以用這種語法 set a var 1 這樣的語法對應原始語法就是set a var var 1 都是一樣的結果。對於 邏輯或取餘操作符 我們需要把他們用雙引號引起來,看例子 複製 如下 set a var 1 1 這樣結果就顯示出來了,其他邏輯或取餘操作符用...

set集合的學習

set介面裡面的集合,所儲存的元素就是不重複的。hashset可查重,使用hashset自定義泛型時,可在泛型類中新增equals 和hashcode 自動生成方法,實現相等的元素查重 treeset可排序,使用treeset自定義泛型時,即可在泛型類中實現介面自動新增實現方法 override p...

學習筆記 set的使用

set預設進行公升序排列,通過結構體可以改。維護乙個比主人公分數高的set 降序排列,比主人公高就進入set 比主人公低就不進去,或者在刪除操作裡刪掉。然後血的教訓 include using namespace std const int maxn 1e5 7 struct node s maxn...