set<
int> setlnt;
//乙個存放int的容器
set<
float
> setfloat;
//乙個存放float的容器
set setstring;
//乙個存放string的容器
insert
(a);
//在容器中插入元素
begin()
;//返回容器中第乙個資料的迭代器
end();
//返回容器中最後乙個資料之後的迭代器
rend()
;//返回容器中倒數最後乙個元素的後面的迭代器。
rbegin()
;返回容器中倒數第乙個元素的迭代器。
set預設按公升序排序,如果想降序排序,可以:
set<
int,greater<
int>
> setint1;
//按降序排序,注意最後`> >`中間有乙個空格
set<
int,less<
int>
> setint2;
//按公升序排序
erase
(value)
;//刪除容器中值為value的元素
erase
(it)
;//刪除it迭代器所指的元素,返回下乙個元素的迭代器
erase
(beg,end)
;//刪除區間[beg,end)的所有元素,返回下乙個元素的迭代器
find
(value)
;//在容器中查詢值等於value的值,並返回指向value的迭代器
#include
#include
#include
using namespace std;
intmain()
;int j=0;
while
(i<
sizeof
(a)/
sizeof
(int))
//陣列a插入到set集合中
//迭代器輸出集合中的元素
for(set<
int>
::iterator it=s.
begin()
;it!=s.
end(
);it++
) cout
int>
::iterator i=s.
find(3
);//查詢值為3的元素,並返回對應的迭代器
if(i!=s.
end())
//如果查詢成功,則刪除
s.erase
(i);
//再次輸出集合中的元素
for(set<
int>
::iterator it = s.
begin()
; it != s.
end(
); it++
) cout
/輸出集合中元素的個數
s.erase(2
);//刪除集合中值為2的元素
for(set<
int>
::iterator it = s.
begin()
; it != s.
end(
); it++
) cout
(s.begin()
,s.end()
);//刪除集合從頭到尾之間的元素
cout
/輸出0
return0;
}
equal_range()
;//返回集合中與給定值相等的上下限的兩個迭代器,上限是閉區間,下限是開區間,如[beg,end)。這兩個迭代器,封裝在pair中。
#include
#include
#include
using namespace std;
intmain()
;int j=0;
while
(j<
sizeof
(a)/
sizeof
(int))
for(set<
int>
::iterator it=s.
begin()
;it!=s.
end(
);it++
) cout
::iterator,set<
int>
::iterator> pa=s.
equal_range(3
);set<
int>
::iterator be=pa.first;
set<
int>
::iterator en=pa.second;
cout<<
*be<<
" "<<
*en/輸出:3 4;左閉右開區間
return0;
}
set也可以對自定義型別進行排序
例如:對乙個(姓名,年齡)自定義型別按照年齡從小到大排序
#include
#include
#include
using namespace std;
struct st
}p[5];
intmain()
for(set
::iterator it=s.
begin()
;it!=s.
end(
);it++
)return0;
}
clear()
;//清除所有元素
count()
;//返回某個值元素的個數(因為set容器中,元素不重複,所有只有0或1值,也即判斷容器中是否存在某元素)
empty()
;//判斷容器是否為空
size()
;//返回容器內元素的個數
swap()
;//交換兩個容器的元素
C STL之Set集合容器
set集合容器實現了紅黑樹的平衡二叉樹的資料結構,在插入元素時候,它會自動的進行調整二叉樹的排列,把該元素放到適當的位置,以保證每個子樹根節點的鍵值大於左子樹所有的鍵值,小於右子樹所有節點的鍵值 另外,還要確保根節點左子樹的高度與右子樹的高度相等,這樣,二叉樹的高度最小,從而達到檢索的速度最快 注意...
C STL之set集合容器
set集合容器 set集合容器實現了紅黑樹 red black tree 的平衡二叉檢索樹的資料結構,在 插入元素時,它會自動調整二叉樹的排列,把該元素放到適當的位置,以確保每個子樹根節點的鍵值大於左子樹的所有節點的鍵值,而小於右子樹所有節點的鍵值 另外,還得確保根節點左子樹的高度與右子樹的高度相等...
c STL庫容器之集合set
set是stl中一種標準關聯容器,其鍵值就是實值,實值就是鍵值,不可以有重複,所以我們不能通過set的迭代器來改變set的元素的值。它底層使用平衡的搜尋樹 紅黑樹實現,插入刪除操作時僅僅需要指標操作節點即可完成,不涉及到記憶體移動和拷貝,所以效率比較高。set,顧名思義是 集合 的意思,在set中元...