set是一種關聯式容器(關聯容器set, multiset, map, multimap),其內部的資料結構是紅黑樹(rb tree )其效能要優於平衡二叉樹
在set中元素的值是唯一的,而且其能根據元素的值自動進行排序。
set中查詢元素使用二分查詢,時間複雜度是log2
常用方法
begin() //返回第乙個元素反向迭代器:set::reverse_iteratorend() //返回最後乙個元素
clear() // 清空所有的元素
empty() // 判斷set是否為空
max_size() // 返回set可能包含的元素最大個數
size() // 返回當前set容器中的元素個數
erase(it) //刪除迭代器指標it處元素
insert(a) //插入某個元素
rbegin() //反轉的 返回的值和end()相同
rend() // 返回的值和begin()相同
自定義比較函式:
定義比較結構體
struct node{
bool operator() (const 型別 &a, const 型別 &b) {
return(a>b);
定義set:
set《型別,node> s;
struct node{
bool operator < (const 結構體型別 &a) const{
return ;
定義set
set《型別》 s;
C STL中的容器
用c 寫資料結構習題也有一段時間了,不得不說stl容器對資料結構真的很有用。c stl standard template library,標準模板庫 是一套功能強大的 c 模板類,其中包含4個元件,分別為演算法 容器 函式 迭代器。所以想總結一下自己用的容器,為什麼要用它以及怎麼用?c c 原生的...
C STL中的函式
標頭檔案 algorithm 中有很多好用的函式 max a,b 返回a和b中的最大值,引數可以是浮點數 min a,b 返回a和b中的最小值,引數可以是浮點數 tolower char ch 將字元型變數ch的大寫轉換為小寫,其他不變 toupper char ch 將字元型變數ch的小寫轉換為大...
c STL中的容器
容器作為stl的重要組成部分,其主要包括兩大類 順序容器 和 關聯容器 雖說這二者都是用來儲存資料的資料結構,但是他們的底層實現和特長有很大差別 關聯容器有8種 1 map 紅黑樹 2 set 紅黑樹 3 multimap 紅黑樹 4 multiset 紅黑樹 5 unordered map 雜湊表...