c++ - Sorting a map with unknown keys by value -
मेरे पास निम्न शैली में एक नक्शा है:
mapa ["01"] = 2 नक्शा ["111"] = 3 यह दिखाता है कि पाठ में प्रत्येक उप-स्ट्रिंग कितनी बार दिखाई देती है (पाठ में 1s और 0s होते हैं)।
अब हम कहते हैं कि मैं 10 सबसे अधिक बार उपयोग किए गए उप-स्ट्रिंग्स को आउटपुट करना चाहता हूं, मुझे मानचित्र में सभी चाबीओं के माध्यम से जाना होगा और उन सबसे बड़े मूल्यों के साथ मिलना होगा (मूल्य, उतरते)। कोई छद्म कोड या आज्ञाओं का उपयोग करना चाहिए?
अगर यह आपके लिए किसी भी उपयोग का है, तो मैं कार्य पर काम कर रहा हूं और मुझे सभी मान मिल गए हैं, मुझे नहीं पता कि उन्हें कैसे सॉर्ट करना है। / p>
इसे देखें, आप मूल रूप से मानचित्र को पुनरावृत्त करें और मान पर std :: partial_sort का उपयोग करें।
typedef std :: जोड़ी & lt; std :: string, int & gt; mypair; संरचना इंट्रकम्प {बूल ऑपरेटर () (कॉन्स्ट माइपेयर एंड एलएचएस, कंट माइपेयर एंड आरएचएस) {रिटर्न एल एच। सीकंड & gt; rhs.second; }}; शून्य प्रिंट 10 (const std :: map & lt; std :: string, int & gt; और mymap) {std :: vector & lt; mypair & gt; मैवेक (mymap.begin (), mymap.end ()); जोर दें (myvec.size ()> gt; = 10); Std :: partial_sort (myvec.begin (), myvec.begin () + 10, myvec.end (), IntCmp ()); (इंट आई = 0; आई & lt; 10; ++ i) के लिए {std :: cout & lt; & lt; मैं & lt; & lt; ":" & Lt; & lt; Myvec [i]। प्रथम & lt; & lt; "- & gt;" & lt; & lt; मैवेक [आई]। सिकेंड & lt; & lt; "\ N"; }}
Comments
Post a Comment