iはペアのベクトルを持っている:3番目のパラメータ(コンパレータ関数)を使用したオーバーロードされたsort()はどのように機能しますか?
vector<pair<char,int> > pAB;
私は、ソート機能でそれを注文しました。私が昇順に並べ替えることにしたので、sort関数には3番目のパラメータがあります(booleanまたはbooleanを返す関数かもしれません)。そのために、あなたはこのsortbysec目的球を必要とする:
bool sortbysec(const pair<char,int> &a,
const pair<char,int> &b){
return (a.second < b.second);}
私はこの機能を使用する場合、私は、パラメータ送信する必要はありませんでした。私はこれが働いた理由を知りたい
sort(pAB.begin(),pAB.end(),sortbysec);
を。
注:私はすでにインターネット上でそれを探すには、自動的にa
とb
の両方にペアを割り当てるもの
"私は、パラメータを送信する必要はありませんでした。" - あなたはSTD 'に送信された第三 "もの" :: sort'ことを何と呼びますか?なぜ 'std :: sort(pAB.begin()、pAB.end())'(コードは表示されていません)がうまくいくのかを尋ねるなら、[std :: pairの 'operator <'オーバーロードデフォルトのコンパレータである['std :: less'](http:// en)が標準ライブラリによって提供されている<>'](http://en.cppreference.com/w/cpp/utility/pair/operator_cmp) .cppreference.com/w/cpp/utility/functional/less)、 – WhozCraig
関数ポインタをルックアップします。 – Peter