首页 > 代码库 > c++set集合的使用
c++set集合的使用
最后一个自由支配的暑假,学一些自己感兴趣的部分,也算为大三作准备。
C++中set集合的使用
定义一个int类型的集合
set<int> s;
set<int>::iterator it;
基本操作有如下:
s.inert(10);//插入元素10
s.erase(10);//删除元素10
s.clear();//清空集合
s.size();//集合元素的个数
s.empty();//判断集合是否为空
it=s.find(10);//查找集合中是否有元素10,有的话返回10,没有返回s.end();
首先集合在数学的概念中就是互异性,不能有重复
需要注意的点:
1.是以中序遍历去遍历整个集合的,在插入的时候自动调整
2.遍历的时候需要判断一下集合是否为空;
3.插入的数默认从小到大排序 set<int>::iterator it;
4.如果要从大到小的话 set<int>::reverse_iterator rit;
for(rit=s.rbegin();rit!=s.rend();rit++)
{
cout<<*rit<<" ";
}
自定义比较函数,用到结构体
1 #include<set>
2
3 #include<string>
4
5 #include<iostream>
6
7 using namespace std;
8
9
10
11 struct Info
12
13 {
14
15 string name;
16
17 float score;
18
19 //重载 ‘<‘操作符
20
21 bool operator < (const Info &a)const
22
23 {
24
25 //按照score从小到大排序 换为‘<’则为从大到小
26
27 return a.score>score;
28
29 }
30
31 };
32
33 int main()
34
35 {
36
37 set<Info> s;
38
39 Info info;
40
41
42
43 info.name="Jack";
44
45 info.score=99;
46
47 s.insert(info);
48
49
50
51 info.name="Tom";
52
53 info.score=56;
54
55 s.insert(info);
56
57
58
59 info.name="Nacy";
60
61 info.score=85;
62
63 s.insert(info);
64
65
66
67 info.name="Elano";
68
69 info.score=100;
70
71 s.insert(info);
72
73
74
75 set<Info>::iterator it;
76
77 for(it=s.begin();it!=s.end();it++)
78
79 cout<<(*it).name<<" : "<<(*it).score<<endl;
80
81 return 0;
82
83
84
85 }
结果:
c++set集合的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。