下面的函數是我的比較函數。在直接比較兩個字符成功分配數組時,使用std :: string compare函數不會。排序比較函數奇怪行爲
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 ::比較不排序呢? PS:std :: compare比較反轉位置的結果,例如,阿蘭,理查德,拜倫,莎拉 - >莎拉,拜倫,理查德,阿蘭。
這不是特別清楚。你能否添加一些具體的測試代碼(即我們可以編譯和運行的10行程序,可能在http://ideone.com中)來演示什麼不起作用? – 2013-03-12 22:17:35
其他人對'student'及其成員的類型decl有遠程興趣嗎? (並注意:你的第二個回報是毫無意義的)。 – WhozCraig 2013-03-12 22:17:46
@WhozCraig No ... – 2013-03-12 22:18:09