c++11 对容器进行排序
来源:互联网 发布:绝地求生有数据接口吗 编辑:程序博客网 时间:2024/05/16 19:23
本文主要总结如何利用容器对类类型的对象进行排序。
以容器set为例,存储类型为:
class book{private: string name; double price;public: double getprice(){return price;} book(string n,double d):name(n),price(d){} void display(){cout<<name<<"\t"<<price<<endl;}};
1.利用函数对象进行排序
set的第二个模板参数接受一个排序的函数对象,可利用这种函数对象的形式进行排序
struct compare{ bool operator()(book b1,book b2){ return b1.getprice()<b2.getprice(); } }; set<book,compare> sb;
2.利用函数指针对容器进行排序
其实函数指针本质上与函数对象是一样的,但是形式不同,所以单独列举出来。
先写一个用于排序的函数。
bool compare(book b1, book b2){ return b1.getprice()<b2.getprice();}
有多种函数指针的形式,这里简要列举一下
set<book, bool (*)(book,book)> sb{compare};
typedef bool (*com)(book,book);
set<book,com> sb{compare};set<book, decltype(compare)*> sb{compare};
3.类重载<运算符
bool operator <(const book &b1)const {return price<b1.price;}
0 0
- c++11 对容器进行排序
- 对容器元素进行排序
- 对vector等STL容器进行排序
- C++ 容器使用自定义排序逻辑对中英文进行排序
- 对vector等STL标准容器进行排序操作
- 练习使用 STL sort 对容器进行排序
- 对stlport容器进行排序的一个bug
- 对vector等STL标准容器进行排序操作
- 对vector等STL标准容器进行排序操作
- STL的list容器如何对结构体进行排序
- STL中对vector容器中的结构体进行排序
- 对vector等STL标准容器进行排序操作
- 对vector等STL标准容器进行排序操作
- 对vector等STL标准容器进行排序操作
- 对vector等STL标准容器进行排序操作
- 对vector等STL标准容器进行排序操作
- 对vector等STL标准容器进行排序操作
- 对vector等STL标准容器进行排序操作
- hibernate关联映射(二)
- POJ2139-有关%.0lf与(int)强制类型转换的区别,用Dijkstra写的单源点最短路径
- 基于Gstreamer的TI DSP视频处理框架
- 方法重写和方法重载的区别
- PHP中WebService应用_SOAP
- c++11 对容器进行排序
- 数据结构算法代码实现——栈和队列(二)
- 剑指offer--面试题16:翻转链表--Java实现
- [java]类加载机制
- hdu 1159 整理下水题 递推动规
- Git详解之三:Git分支
- 小数化分数2
- Bmob
- struts2 java.lang.UnsupportedClassVersionError: Bad version number in .class file 解决