STL里的顺序容器里都有个sort方法,该sort方法可以传入一个谓词函数,也可以理解成回调函数,排序的时候就按照这个函数的约定来进行。降序、升序该如何编写此函数,下面做个记录。
bool mysort_comp(int elem1, int elem2)
{
return elem1 > elem2;
}
int main()
{
using namespace std;
list<int> L;
list<int>::iterator Iter;
bool b1, b2;
L.push_back(50);
L.push_back(10);
L.push_back(30);
L.push_back(20);
L.push_back(25);
L.push_back(5);
L.sort(mysort_comp);
cout << "L = ( ";
for (Iter = L.begin(); Iter != L.end(); Iter++)
cout << *Iter << " ";
cout << ")" << endl;
}
上面的mysort_com表示按照降序排列,如果写成return elem1 < elem2 则表示按照升序排列,这里可以把这个函数理解成按照此函数排完序后里面的元素就应该是前面的元素大于后面的元素(return elem1 > elem2;)即降序,或者是反过来的。