Re: [問題] 有關英文+數字的大小比較該怎麼寫比較好
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
08/14 22:08, 1F
→
08/14 22:08, , 2F
08/14 22:08, 2F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 3 篇):