set是乙個集合容器,其中所包含的元素是唯一的,集合中的元素按一定順序排列
元素插入過程是按排序規則插入,故不可指定位置插入
set採用紅黑樹變體的資料結構實現,紅黑樹屬於平衡二叉樹。在插入刪除操作上比vector快
set不能直接訪問元素(即,不可使用和*.at())
multiset與set的區別:set支援唯一鍵值,每個元素只出現一次;multiset同一值可出現多次
不可直接修改set和multiset中的元素值,因為該容器是自動排序的。要想修改乙個元素,必須先刪除它,再插入新的元素
#define _crt_secure_no_warnings
#include
#include
#include
using
namespace std;
/* set是乙個集合容器,其中所包含的元素是唯一的,集合中的元素按一定順序排列
元素插入過程是按排序規則插入,故不可指定位置插入
set採用紅黑樹變體的資料結構實現,紅黑樹屬於平衡二叉樹。在插入刪除操作上比vector快
set不能直接訪問元素(即,不可使用和*.at())
multiset與set的區別:set支援唯一鍵值,每個元素只出現一次;multiset同一值可出現多次
不可直接修改set和multiset中的元素值,因為該容器是自動排序的。要想修改乙個元素,必須先刪除它,再插入新的元素
*/class
student
public
: string name;
int age;};
struct funcstudent};
intmain()
set1.
insert(5
);set1.
insert
(100);
set1.
insert
(100);
for(set<
int>
::iterator it = set1.
begin()
; it != set1.
end(
); it++
) cout << endl;
//5 100 6334 11478 15724 18467 19169
//刪除集合
while
(!set1.
empty()
) cout << endl << endl;
set<
int, greater<
int>> set2;
for(
int i =
0; i <
5; i++
)//從大到小排序
for(set<
int, greater<
int>>
::iterator it = set2.
begin()
; it != set2.
end(
); it++
) cout << endl;
//2 自定義資料型別的比較 ===>仿函式 函式物件
student s1
("s1",31
);student s2
("s2",32
);student s3
("s3",22
);student s4
("s4",44
);set sets1;
sets1.
insert
(s1)
; sets1.
insert
(s2)
; sets1.
insert
(s3)
; sets1.
insert
(s4)
;//遍歷
for(set
::iterator it = sets1.
begin()
; it != sets1.
end(
); it++
) set<
int> set3;
for(
int i =
0; i <
10; i++
) set<
int>
::iterator it0 = set3.
find(5
);cout <<
"*it0: "
<<
*it0 << endl;
int num1 = set3.
count(5
);cout <<
"num1: "
<< num1 << endl;
set<
int>
::iterator it1 = set3.
lower_bound(5
);cout <<
"*it1: "
<<
*it1 << endl;
set<
int>
::iterator it2 = set3.
lower_bound(5
);cout <<
"*it2: "
<<
*it2 << endl;
pairint>
::iterator, set<
int>
::iterator> mypair = set3.
equal_range(5
);set<
int>
::iterator it3 = mypair.first;
cout <<
"*it3: "
<<
*it3 << endl;
//5 //6
set<
int>
::iterator it4 = mypair.second;
cout <<
"*it4: "
<<
*it4 << endl;
//6 //6
return0;
}
c set集合的使用方法詳解
set集合是c stl庫中自帶的乙個容器,set具有以下兩個特點 1 set中的元素都是排好序的 2 set集合中沒有重複的元素 常用操作 begin 返回set容器的第乙個元素的位址 end 返回set容器的最後乙個元素位址 clear 刪除set容器中的所有的元素 empty 判斷set容器是否...
c set集合的使用方法詳解
set集合是c stl庫中自帶的乙個容器,set具有以下兩個特點 1 set中的元素都是排好序的 2 set集合中沒有重複的元素 常用操作 begin 返回set容器的第乙個元素的位址 end 返回set容器的最後乙個元素位址 clear 刪除set容器中的所有的元素 empty 判斷set容器是否...
C 物件模型系列集合
文章 指標和引用 指標與陣列 指標與字串 堆疊與函式呼叫 sizeof與物件記憶體布局 單繼承與虛函式表 多重繼承與虛函式表 虛繼承與虛函式表 型別轉化 參考 1 c 物件模型 c 物件模型筆記 c 物件記憶體布局1 c 物件記憶體布局1 c 虛函式表解析 位元組對齊1 位元組對齊2 位元組對齊3 ...