C_and_CPP 板


LINE

rt 如果小弟寫了一個class p p(string s, int n) 接著 p a("a", 1); p b("b", 2); 然後想用sort以n的大小來排序 比如想大到小的話排起來就是b a 請問該怎麼寫呢? ----- Sent from JPTT on my Sony D6653. --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.105.52.141
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1516854834.A.C0D.html
1F:→ LPH66: 問1: 如果不是 class p 而是普通數字你會寫嗎? 01/25 12:37
2F:→ LPH66: 問2: 寫過運算子覆載嗎? 01/25 12:38
3F:推 Sidney0503: 放到container然後使用std::sort 01/25 12:38
4F:→ Sidney0503: 然後自定義operator< 01/25 12:38
5F:→ Sidney0503: 不好意思說錯 是自定義functor 01/25 12:47
6F:→ hydebeast: l大 會的 01/25 13:08
7F:→ hydebeast: s大 不好意思可以稍微詳細一點嗎? 01/25 13:08
8F:推 alan23273850: 簡單來說就是針對新物件自定義大小關係,網路上都 01/25 13:39
9F:→ alan23273850: 找得到,有兩種寫法 01/25 13:39
10F:→ alan23273850: 關鍵字:cpp custom sort 01/25 13:39
11F:推 BlazarArc: http://en.cppreference.com/w/cpp/algorithm/sort 01/25 13:46
12F:→ BlazarArc: 三樓說的用std::sort (3)的用法 下面也有例子 01/25 13:46
13F:→ hydebeast: 小弟參考網路類似的例子 bool cmp(p&a, p&b) 01/25 13:52
14F:→ hydebeast: {return a<b} 然後再sort(c.begin(),c.end(),cmp) 01/25 13:53
15F:→ hydebeast: c是vector<p*>c 可是這樣會錯誤 好像是因為我的cmp裡 01/25 13:54
16F:→ hydebeast: 面是p& vector是p*嗎?抱歉小弟對&跟*還很混亂 可是不 01/25 13:55
17F:→ hydebeast: 管想把cmp的&改*還是反過來vector的*改&都會錯誤 01/25 13:56
18F:→ hydebeast: 另外還到定義operator<(p&a,p&b){return a.n<b.n} 01/25 13:58
19F:→ hydebeast: 然後直接sort的做法 可是這樣sort出來跟沒定義<的時候 01/25 13:59
20F:→ hydebeast: 沒差別@@ 01/25 13:59
21F:→ loveflames: http://www.cplusplus.com/reference/algorithm/sort/ 01/25 14:00
22F:→ hydebeast: 小弟目前網路看到的都是類似bool cmp那個的做法 都會出 01/25 14:12
23F:→ hydebeast: 現*跟&的問題 請問怎麼解QQ對*跟&真的不熟 01/25 14:12
24F:推 Sidney0503: 上面已經說了關鍵字:cpp custom sort 英文google 01/25 14:33
25F:→ Sidney0503: 第一篇就是了 01/25 14:33
26F:→ hydebeast: http://i.imgur.com/CgzjTY3.jpg 小弟照搜尋第一篇的方 01/25 14:53
27F:→ hydebeast: 法 但編譯不會過 就是上面有講到的*跟&的問題 但不會改 01/25 14:53
28F:→ hydebeast: … 01/25 14:53
29F:→ hydebeast: http://i.imgur.com/mZ1eE5B.jpg 上面的程式碼 01/25 14:54
30F:噓 loveflames: 又來一個貼圖的,你是嫌上面幾篇電的不夠嗎 01/25 14:55
31F:→ hydebeast: https://ideone.com/DZGBYz 很抱歉~ 01/25 14:59
32F:推 Sidney0503: 不要使用* 初學直接傳實體就好 01/25 15:07
33F:→ hydebeast: 程式碼本身是題目給的 他只要求把sort部分寫出來 而且 01/25 15:15
34F:→ hydebeast: 小弟有試著把*都去掉 可是person p會出錯… 01/25 15:15
35F:→ hydebeast: 另外三個class裡面的public也是小弟寫的 不過如果沒加s 01/25 15:19
36F:→ hydebeast: ort的話跑起來結果是對的 還是說那部分有錯呢? 01/25 15:19
37F:推 jerryh001: cmp不對 應該要person* 而不是const person& 01/25 15:28
38F:→ hydebeast: j大我有改過那樣 不過這樣a.ID會錯 他說expression mus 01/25 15:34
39F:→ hydebeast: t have class type 01/25 15:34
40F:推 LPH66: 我覺得你先回頭搞懂 * & 的意義跟用法再回到這題上來好了 01/25 15:40
41F:→ LPH66: 你這裡撞到的問題都跟你原來的 sort 幾乎無關 01/25 15:40
42F:→ LPH66: 反而都是 * & 這些觀念不清楚造成的 01/25 15:40
43F:→ loveflames: 你不會把問題單純化嗎,明明問題只是在怎麼排序,非得 01/25 15:41
44F:→ loveflames: 連繼承也一起扯進來 01/25 15:41
45F:→ LPH66: 你這裡面只有一個地方跟 sort 有關: 01/25 15:41
46F:→ LPH66: 比較函數收的型態是元素型態, 你的元素是 p* 它就收 p* 01/25 15:42
47F:→ LPH66: 你的元素是 p 它就收 p; 至於怎麼寫就要看你參數是什麼 01/25 15:42
48F:→ LPH66: 這裡就是我說你沒搞懂的地方了, 不是 * & . -> 亂試 01/25 15:43
49F:→ LPH66: 而是去知道寫這個符號代表什麼意義, 要怎麼找到你要的資料 01/25 15:43
50F:→ loveflames: 不熟麻煩請循序漸進,不是把一堆有問題的code拼湊起來 01/25 15:45
51F:→ loveflames: 然後才問問題在哪,根本大哉問 01/25 15:46
52F:→ hydebeast: 感謝各位跟L大 解出來了 01/25 16:05
53F:→ hydebeast: *LP大 01/25 16:08
54F:推 pizzafan: https://www.youtube.com/watch?v=MZaf_9IZCrc 01/25 18:38
55F:→ pizzafan: ↑這邊有youtuber嗎? 要做中文版講解嗎? 或是改良更好些 01/25 18:39







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP