引子
在set的类模板中,插入元素是会自动排序的,那么这是如何实现的呢。
默认的set<int> setl; 这种写法,他会调用默认的less函数对象
less函数对象实现比较,为排序提供依据,set<int, less<int>> set1; (由小到大排序,即通过迭代器输出是,由小到大)
greater函数对象(仿函数)实现比较,set<int, greater<int>> set1; (大到小,即通过迭代器输出是,由大到小)
此外,如果set中插入的是自己定义的类,那么为了使less和greater函数能够正常使用,是需要在类中进行运算符重载的,less重载<,greater重载>
补充
我们还可以自己定义仿函数。
运行结果:
标签:set,函数,less,对象,functor,用法,排序 From: https://www.cnblogs.com/ylww/p/16817240.html