STL的set基本用法

2021-07-28 16:32:20 字數 1726 閱讀 8066

set是集合,雖然也存在鍵值和實值,不過兩者根本就是同乙個值,鍵值的設定完全就是為了滿足紅黑樹的底層結構,set操作與map很像不過也有些不同。

1、 set迭代器與map的不同:

(1)set使用接引用運算子*取值,而map使用first和second取值。

(2)set的迭代器都是常量迭代器,不能用來修改所指向的元素,而map的迭代器是可以修改所指向元素的。

2、set沒有過載運算子,而map中過載了,因為直接使用改變元素值會打亂原本正確的順序,要改變元素值必須先刪除舊元素,則插入新元素

3、構造的型別不一樣,如同樣實值為int型別分別為set和map(其中type可以為任意型別)

其他如插入、刪除、查詢等操作與map幾乎一樣

1 #include2 #include

3using

namespace

std;

4void print(set

set_int)

511 cout<

1213}14

intmain()15;

17set

set_int(num,num+4

);18

19//

元素插入:

20//

21//

pairinsert(value)

22//

2,在pos位置之前插入value,返回新元素位置,但不一定能插入成功

23//

iterator insert(&pos, value)

24//

3,將迭代區間[&first, &last)內所有的元素,插入到set容器

25//

void insert[&first, &last)

26 set_int.insert(5

);27

print(set_int);

28 set_int.insert(5

);29

print(set_int);

3031

//元素刪除

32//

1,size_type erase(value) 移除set容器內元素值為value的所有元素,返回移除的元素個數

33//

2,void erase(&pos) 移除pos位置上的元素,無返回值

34//

3,void erase(&first, &last) 移除迭代區間[&first, &last)內的元素,無返回值

35//

4,void clear(), 移除set容器內所有元素

36 set_int.erase(3

);37

print(set_int);

3839

//元素查詢

40//

count(value)返回set物件內元素值為value的元素個數

41//

iterator find(value)返回value所在位置,找不到value將返回end()

42//

lower_bound(value),upper_bound(value), equal_range(value)

43set

::iterator it;

44 it=set_int.find(5

);45 cout<

46return0;

47 }

STL 中set的用法

set set2 set1 建立set1的副本set2,set2與set1必須有相同的鍵型別和值型別 set set3 b,e 建立set型別的物件set3,儲存迭代器b和e標記的範圍內所有元素的副本。元素的型別必須能轉換為k型別 lower bound 返回指向大於或等於某值的第乙個元素的迭代器 ...

STL之set的用法

1.關於set 首先,set是關聯容器,set作為乙個容器是用來儲存同一種資料型別的資料結構,基本功能與陣列相似。不同的是,在set中每個元素的值都是唯一的。而且系統能夠根據元素的值自動進行排序。但是set中數元素的值並不能直接被改變。除了set,stl中還有一些標準關聯容器multiset map...

Set的基本用法

參考 阮一峰 es6入門之set es6 提供了新的資料結構 set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。const s new set 2,3,5,4,5,2,2 foreach x s.add x set結構不會新增重複的值 for let i of s 初始化 例一 可以接受乙...