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 }