1 #include <iostream>
2 #include <cstdio>
3 #include <set>
4 using namespace std;
5 #define N 5
6
7 void ps(set<int> s)
8 {
9 set<int>::iterator i;
10 for (i=s.begin();i!=s.end();i++)
11 {
12 printf("%3d",*i);
13 }
14 printf("\n");
15 }
16
17 int main()
18 {
19 int i;
20 set<int> s;
21 for (i=0;i<N;i++)//set不会重复插入
22 {
23 s.insert(i);
24 s.insert(i);
25 }
26 ps(s);
27
28 s.clear();
29 printf("%d\n",s.empty());
30 printf("%d\n",s.size());
31 printf("%d\n",s.max_size());
32
33 for (i=0;i<N;i++)//set不会重复插入
34 {
35 s.insert(i);
36 }
37 ps(s);
38
39 // set<int>::iterator ii;
40 // ii=s.rbegin();
41 // printf("%d",*ii);
42
43 printf("%d %d\n",s.count(1),s.count(5));//查找该值出现次数
44
45 set<int>::iterator ii;
46 ii=s.begin();
47 s.erase(ii);//erase(iterator) ,删除定位器iterator指向的值
48 ps(s);
49 s.erase(3);//erase(key_value),删除键值key_value的值
50 ps(s);
51 ii=s.end();
52 ii--;
53 s.erase(s.begin(),ii);//erase(first,second),删除定位器first和second之间的值
54 ps(s);
55
56 ii=s.find(4);//find() ,返回给定值值得定位器,如果没找到则返回end()
57 printf("%d\n",*ii);
58
59 pair<set<int>::iterator,bool> p;
60 p=s.insert(3);
61 printf("%d %d\n",*p.first,p.second);
62
63 int a[]={0,1,2,5,6};
64 s.insert(a,a+5);
65 ps(s);//insert(first,second)将定位器间的元素插入Set,返回void
66
67 printf("%d %d\n",*s.lower_bound(3), *s.upper_bound(3)); //?
68
69 // struct st
70 // {
71 // int id;
72 // char c;
73 //
74 // bool rank(struct st x,struct st y)
75 // {
76 //
77 // }
78 // };
79 // set<int,st> s1;
80
81
82 return 0;
83 }