1 # include<iostream> 2 # include<cstdio> 3 # include<set> 4 using namespace std; 5 struct myComp 6 { 7 bool operator()(const int &a,const int &b) 8 { 9 if(a!=b) 10 return a>b; 11 else 12 return a<b; 13 } 14 }; 15 struct Info 16 { 17 string name; 18 float score; 19 bool operator < (const Info &a)const 20 { 21 return a.score < score; 22 } 23 }; 24 int main(int argc,const char * argv[]) 25 { 26 /*---------------------------------------------*/ 27 //本部分insert,实现有序和去重 28 //set<int>s; 29 //s.insert(8); 30 //s.insert(1); 31 //s.insert(12); 32 //s.insert(6); 33 //s.insert(8); 34 35 //set<int>::iterator it; 36 //for(it = s.begin();it!=s.end();it++) 37 //{ 38 // cout<<*it<<endl; 39 //} 40 41 /*----------------------------------------------*/ 42 //reverse 43 //set<int>s; 44 //s.insert(8); 45 //s.insert(1); 46 //s.insert(12); 47 //s.insert(6); 48 //s.insert(8); 49 50 //set<int>::reverse_iterator rit; 51 //for(rit = s.rbegin();rit!=s.rend();rit++) 52 //{ 53 // cout<<*rit<<endl; 54 //} 55 56 /*-----------------------------------------------*/ 57 //erase 58 //set<int>s; 59 //s.insert(8); 60 //s.insert(1); 61 //s.insert(12); 62 //s.insert(6); 63 //s.insert(8); 64 65 //s.erase(6); 66 //set<int>::reverse_iterator rit; 67 //for(rit = s.rbegin(); rit!=s.rend(); rit++) 68 //{ 69 // cout<<*rit<<endl; 70 //} 71 //s.clear(); 72 //cout<<s.size()<<endl; 73 74 75 /*-------------------------------------------*/ 76 //元素的检索 77 //set<int>s; 78 //s.insert(8); 79 //s.insert(1); 80 //s.insert(12); 81 //s.insert(6); 82 //s.insert(8); 83 84 85 //set<int>::iterator it; 86 87 //it = s.find(6); 88 //if(it!=s.end()) 89 // cout<<*it<<endl; 90 //else 91 // cout<<"not find it"<<endl; 92 //it = s.find(20); 93 //if(it!=s.end()) 94 // cout<<*it<<endl; 95 //else 96 // cout<<"not find it"<<endl; 97 98 /*---------------------------------------*/ 99 //自定义比较函数 100 //set<int,myComp>s; 101 //s.insert(8); 102 //s.insert(1); 103 //s.insert(12); 104 //s.insert(6); 105 //s.insert(8); 106 //set<int,myComp>::iterator it; 107 //for(it = s.begin(); it!=s.end(); it++) 108 //{ 109 // cout<<*it<<endl; 110 //} 111 112 /*-----------------------------------------*/ 113 //另一种自定义比较 114 //set<Info>s; 115 //Info info; 116 //info.name = "Jack"; 117 //info.score = 20.5; 118 //s.insert(info); 119 //info.name = "Nacy"; 120 //info.score = 60.5; 121 //s.insert(info); 122 //set<Info>::iterator it; 123 //for(it = s.begin();it!=s.end();it++) 124 //{ 125 // cout<<(*it).name<<":"<<(*it).score<<endl; 126 //} 127 128 129 }