建議先看stl裡的map,該文章中的set只是對stl的一種補充,事實上map的功能比set強大很多,基本上用set能實現的功能用map也能實現用法
作用s.begin(), s.end()
返回集合的首尾迭代器
s.insert(k)
向集合中加入元素k
s.earse(k)
刪除集合中元素k
s.size()
返回當前集合的元素個數
s.find(k)
返回集合中指向元素k的迭代器。如果不存在這個元素,就返回s.end()
s.empty()
返回當前集合是否為空,是返回1,否則返回0
s.clear()
清空當前集合。
s.upper_bound()
返回乙個鍵值大於k的第乙個元素的迭代器
s.lower_bound
返回乙個鍵值大於等於k的第乙個元素的迭代器
用法與map大量相似,這裡只簡單介紹下二者的區別查詢值
set不像map有鍵值和value,需要用it->first和it->second來返回對應的鍵值和value。set只有乙個數值,取其數值只需要對迭代器進行取值符號即可
int
main()
二分查詢的函式
set支援lower_bound和upper_bound函式,可以查詢鍵值大於k的第乙個元素的迭代器
int
main()
事實上也可以用另一種方法實現,就是先將k插入,然後去查詢k所對應的迭代器的下一位,返回其值並將k刪除即可
set<
int>s;
intmain()
else
return0;
}
map一般用來實現有關字串的對應值問題,而set更加關注數字集合的關係,使用set一般是為了解決兩個問題:去重和排序不再展示其用法
使用set會自動排序,如果我只想去重,不想排序怎麼辦??
set容器 map容器
簡介 本質 set和multiset區別 構造 賦值 include void printset set int s cout endl 構造和賦值 void test01 intmain 總結 函式原型 include void printset set int s cout endl 大小 vo...
Set容器的使用
set容器只是單純鍵的集合,如果想知道乙個值是否存在時,使用set容器比較合適。set容器中的鍵也是唯一的,不能修改,且set容器不能使用下標操作。以下使用程式說明set容器的使用 定義 插入 獲取 等 include stdafx.h include include include using n...
set 容器的運用
簡單題 可以優先佇列 vector 但set容器更為簡單 題目描述 在學習operating system的過程中,glory遇到了這樣乙個問題,現在有乙個大小為可以容納n個頁面的記憶體,硬碟內的內容被分成m個頁面,用1 m來標識,一開始記憶體裡沒有任何頁面,接下來使用者會請求q個頁面,你需要設計乙...