STL sort()函数有三个参数的重载类型
template<class RandomAccessIterator, class Predicate> void sort( RandomAccessIterator first, RandomAccessIterator last, Predicate comp );
查看MSDN,上述参数的含义如下
first
处理第一元素位置的随机访问迭代器。范围进行排序。
last
寻址最终元素的随机访问迭代器位置将一个排序的范围。
comp
定义的顺序连续的元素将满足的比较条件的用户定义的谓词函数对象。
留意其中示例中自定义谓词函数
bool UDgreater ( int elem1, int elem2 ) { return elem1 > elem2; }
以及下面一句说明
sort 算法不是稳定的。
因此自定义谓词函数还有一个要求必须是不稳定的。否则会valid comparator报错