set

 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("
");
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
",s.empty()); 
30     printf("%d
",s.size());
31     printf("%d
",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
",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
",*ii);
58     
59     pair<set<int>::iterator,bool> p;
60     p=s.insert(3);
61     printf("%d %d
",*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
",*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 } 
原文地址:https://www.cnblogs.com/hemeiwolong/p/8995067.html