所有要使用STL模板库算法的程序都要包含头文件
#include<algorithm>
1、sort()函数
1、支持随机存取迭代器的(连续存储空间)vector、deque(双向存取vector)使用STL的sort函数。
2、不支持随机存取迭代器的(链式非连续存储空间)list(双向链表)、slist(单向链表forward_list),不能使用STL的sort函数,因此都会在类中定义sort()成员函数,使用对象名调用即可。
3、关系型容器中基于红黑树的set、multiset、map、multimap,本身就有自动从大到小排序的功能。所以不需要sort函数。
4、stack、queue没有迭代器,各元素的出入口特定,不能进行排序。
5、基于哈希表的(hash)unordered_set/multiset/map/multimap,都是未排序的,当然因为计算hash再存储的特性,也不需要进行排序。
sort的第一种版本,只带两个迭代器作为参数
这种只有两个参数的sort版本,默认是以基本数据类型的<为true。因此在类中重载<操作符返回bool型,就可以使用类中的某个基本类型的成员变量的大小来排序。
sort的第二种版本,以函数指针或仿函数作为第三个参数用于大小比较
以函数指针形式作为第三参数
参见大疆笔试题https://www.jianshu.com/p/00852ade791f
将自定义的comp函数作为sort函数的第三个参数。