Re: [問題] 有關英文+數字的大小比較該怎麼寫比較好

看板C_and_CPP作者 (十三)時間15年前 (2010/08/14 18:34), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串2/3 (看更多)
struct Student { string id; int score; }; vector<Student> vec; bool compare(const Student& s1, const Student& s2) { if(s1.score == s2.score) { return(s1.id < s2.id); } return(s1.score < s2.score); } sort(vec.begin(), vec.end(), compare); 分數優先,學號次之,小排到大。code有問題一起討論。 Bleed ※ 引述《smallpig01 (http://0rz.tw/3BGhp)》之銘言: : 遇到一個學號比較的問題 : ex有五個學生,要比較分數高低,然後依序印出,假設分數一樣則比較學號 : 學號 分數 學號 分數 : A005 30 B003 50 : B003 50 E006 50 : A002 30 結果==> D001 40 : D001 40 A005 30 : E006 50 A002 30 : 分數的排序我會,但是遇到有英文字卡在前面的學號就不知道該怎麼比較了 : EX A002 B003 : A005 E006 : 這兩組的分數一樣,排序結果為 第一組002在005前面 第二組B在E前面 : 我目前只想到可以把前面的英文拆成 ASCII 碼 補在前方 : EX A005 = 63005 然後 存成 long int 的型態再去比 : 我的學號是存成String型態,不知道怎麼只取第一個英文字... : 還有其他更方便的方法可以比較這種類型的文字~ : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.115.229

08/14 22:08, , 1F
因為分數要遞減, 最後一行用!(s1.score < s2.score)
08/14 22:08, 1F

08/14 22:08, , 2F
比較符合原原po的需求
08/14 22:08, 2F
文章代碼(AID): #1CPd4hM1 (C_and_CPP)
文章代碼(AID): #1CPd4hM1 (C_and_CPP)