set(集合)和map一樣也屬於關聯容器,和map不同的是它只儲存關鍵字,而且關鍵字會按公升序排序且不重複,set的內部實現是用紅黑樹實現的。接下來就為大家介紹set的用法
事例如下
像其他容器一樣,我們可以使用insert來向set中插入元素//尖括號中說明set儲存關鍵字型別
set s;
例項如下
注意由於set內部是預設排序的,所以我們不能直接改變set關鍵字的值(set中的關鍵字是唯讀的),若先改變則先刪除在插入#include
#include
using
namespace
std;
int main(int argc,char **argv)
cout
0;}
例項如下
set容器中排序預設以公升序的方式排序,所以它尖括號中的型別必須支援排序,如果是我們自定義的型別,則我們要為它定義乙個我們自己的比較函式#include
#include
using
namespace
std;
int main(int argc,char **argv)
cout
0;}
例項如下
函式#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的一些...