std::set自定义比较函数
2016-01-08 21:55
239 查看
//set with user define comparer #include<set> #include<algorithm> #include<string> #include<functional> #include<iostream> using namespace std; struct Person { int age; string name; Person(const int a=0,const string &n="nobody"):age(a),name(n){} bool operator < (const Person &rhs) const { return this->age < rhs.age; } bool operator > (const Person &rhs) const { return this->age > rhs.age; } }; bool Greater(const Person &a, const Person &b) { return a.age > b.age; } struct LesserAge: public binary_function<Person,Person,bool> { inline bool operator()(const Person &a, const Person &b) { return a.age < b.age; } }; int main() { set<Person> s0; s0.insert(Person(24,"Calvin")); s0.insert(Person(32,"Benny")); s0.insert(Person(30,"Alice")); s0.insert(Person(28,"Alison")); for(set<Person>::iterator it=s0.begin(); it!=s0.end(); ++it) cout << it->age << "," << it->name << endl; cout << "========" << endl; set<Person,std::greater<Person> > s1; s1.insert(Person(24,"Calvin")); s1.insert(Person(32,"Benny")); s1.insert(Person(30,"Alice")); s1.insert(Person(28,"Alison")); for(set<Person>::iterator it=s1.begin(); it!=s1.end(); ++it) cout << it->age << "," << it->name << endl; cout << "========" << endl; set<Person,LesserAge> s2; s2.insert(Person(24,"Calvin")); s2.insert(Person(32,"Benny")); s2.insert(Person(30,"Alice")); s2.insert(Person(28,"Alison")); for(set<Person>::iterator it=s2.begin(); it!=s2.end(); ++it) cout << it->age << "," << it->name << endl; return 0; }
相关文章推荐
- HDOJ 2042 不容易系列之二
- How to refresh materialized view in oracle
- uva-211-The Domino Effect
- vim使用系统剪切板
- 队列
- 一张图解释Linux的目录结构
- lwip中Nagle 算法实现
- 《笨办法学Python》 第8课手记
- Mac 词典工具推荐:Youdao Alfred Workflow(可同步单词本)
- 【Android Studio】常用快捷键
- 造轮子:线程的小用
- 文章收录机制探讨
- 在aspx网页中使用program控件
- poj3468 A Simple Problem with Integers 基础线段树or树状数组
- freemark换行输出
- Android图片处理
- Socket
- BFS 迷宫的最短路径
- iOS开发 UI 设计模式
- const限定符最基本的