1
我有一个对一个矢量:带有第三个参数(即比较函数)的重载排序()如何工作?
vector<pair<char,int> > pAB;
i相排序功能下令。 sort函数有第三个参数(可能是一个返回布尔值或布尔值本身的函数),因为我决定按升序排列。为此你需要这个sortbysec funtion:
bool sortbysec(const pair<char,int> &a,
const pair<char,int> &b){
return (a.second < b.second);}
,当我用这个功能我没有传递一个参数:
sort(pAB.begin(),pAB.end(),sortbysec);
我想知道为什么这个工作。
注:我已经看它互联网上没有发现任何
“我没有送一个参数:” - 你叫什么做的第三个“东西”你送到'的std :: sort'?如果你问为什么'std :: sort(pAB.begin(),pAB.end())'(代码没有显示)可以工作,那是因为[有一个'运算符'''重载'std :: pair <>'](http://en.cppreference.com/w/cpp/utility/pair/operator_cmp)由标准库提供,默认比较器是['std :: less'](http:// en .cppreference.com/w/cpp/utility/functional/less),调用.. – WhozCraig
查找函数指针。 – Peter