以下の関数は私の比較関数です。2 つの文字を直接比較すると配列が正常に並べ替えられますが、std::string 比較関数を使用するとうまくいきません。
int compare (student a, student b) {
return a.name.compare(b.name);
return a.name[0] < b.name[0];
}
呼び出し
sort(data.begin(), data.end(), compare);
データが次のように定義されている場合vector <student> data;
std::compare がソートしないのはなぜですか?
PS: std::compare は位置を反転させます。たとえば、alan、richard、byron、sarah -> sarah、byron、richard、alan などです。