1: #include <list>
2: #include <string>
3: #include <functional>
4: #include <iostream>
5:
6: struct S {
7: std::string firstname;
8: std::string secondname;
9: int ID;
10: // 重新定义小于,因为默认的sort函数调用的操作符是<,所以我们只需要重载 < 就好了
11: bool operator < (S & b) {
12: return ID < b.ID;
13: }
14:
15: };
16: int main(int argc, char* argv[])
17: {
18: std::list<S> mylist;
19: std::list<S>::iterator iter;
20: S a;
21: a.firstname ="dfadf";
22: a.ID = 5;
23: mylist.push_back (a);
24: a.firstname ="得到";
25: a.ID = 9;
26: mylist.push_back (a);
27: a.firstname ="xxx";
28: a.ID = 7;
29: mylist.push_back (a);
30: a.firstname ="gggg";
31: a.ID = 25;
32: mylist.push_back (a);
33: mylist.sort();
34: // 现在默认的operator已经被我们重载了,就不用管,直接调用sort就好了
35: for (iter = mylist.begin(); iter != mylist.end();++iter)
36: {
37: std::cout <<static_cast<S>(*iter).ID << "\t";
38: }
39: std::cout <<std::endl;
40: return 0;
41: }
原文链接: https://www.cnblogs.com/zhangzhang/archive/2013/01/25/2877380.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/76739
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!