C 標準庫set型別

2021-07-05 01:34:19 字數 1138 閱讀 2358

set(集合)和map一樣也屬於關聯容器,和map不同的是它只儲存關鍵字,而且關鍵字會按公升序排序且不重複,set的內部實現是用紅黑樹實現的。接下來就為大家介紹set的用法

事例如下

//尖括號中說明set儲存關鍵字型別

set s;

像其他容器一樣,我們可以使用insert來向set中插入元素

例項如下

#include

#include

using

namespace

std;

int main(int argc,char **argv)

cout

0;}

注意由於set內部是預設排序的,所以我們不能直接改變set關鍵字的值(set中的關鍵字是唯讀的),若先改變則先刪除在插入

例項如下

#include

#include

using

namespace

std;

int main(int argc,char **argv)

cout

0;}

set容器中排序預設以公升序的方式排序,所以它尖括號中的型別必須支援排序,如果是我們自定義的型別,則我們要為它定義乙個我們自己的比較函式

例項如下

#include

#include

using

namespace

std;

//自定義型別

class student

;bool compare(const student &s1,const student &s2)

int main(int argc,char **argv)

函式

作用find(k)

返回乙個迭代器,指向第乙個關鍵字為k的元素,若k不存在則返回尾部迭代器

count(k)

返回關鍵字等於k的元素數量,對於set返回值永遠是0或1

lower_bound(k)

返回乙個迭代器,指向第乙個關鍵字不小於k的元素

upper_bound(k)

返回乙個迭代器,指向第乙個關鍵字大於k的元素

C 標準庫set型別

set容器只是單純的鍵的集合,鍵必須為一。set容器不支援下標操作,而且沒有定義maped type型別。在set容器中,value type不是pair型別,而是與key type型別相同的型別。1.在set中新增元素set set1 set1.insert the set1.insert end...

C 標準模板庫 set

直接上 include includeusing namespace std int main printf n find x 返回set中值為x的迭代器 迭代器與資料一一對應 set iterator it si.find 2 printf d n it it si.find 100 此時迭代器到...

C 標準模板庫 set

1.set是乙個內部自動有序而且不含重複元素的容器,有的時候需要去除重複的元素,使用這個容器的話就非常方便了,而且不用考慮容器的長度,並且set還可以實現自動排序 使用set需要新增set標頭檔案,即 include,並且在標頭檔案下加上using namespace std 2.下面是set的一些...