stl - Free implementation of "bounded priority queue" in C++ -


मैं सी ++ में बाध्य प्राथमिकता कतार अमूर्त के नि: शुल्क सॉफ्टवेयर कार्यान्वयन की तलाश कर रहा हूं मूल रूप से, मुझे एक डेटा संरचना की आवश्यकता है जो कि std :: priority_queue जैसा व्यवहार करेगा, परन्तु सबसे अधिक "सबसे अच्छा" n तत्वों को सबसे अधिक समय पर रखेगा। < P> उदाहरण: <पूर्व> std :: vector & lt; int & gt; आइटम; // कई सारे इनपुट आइटम bounded_priority_queue & lt; int & gt; smallest_items (5); (वेक्टर & lt; int & gt; :: const_iterator के लिए यह = items.begin (); it! = Items.end (); यह ++) {smallest_items.push (* यह); } // अब छोटे_आइटम्स में इनपुट वेक्टर से 5 सबसे छोटे पूर्णांक धारण करता है

क्या किसी को भी इस तरह के काम का अच्छा कार्यान्वयन पता है? इसके साथ कोई अनुभव है?

मुझे लगता है कि में चर्चा की गई एल्गोरिथ्म शायद आप के लिए क्या देख रहे हैं। यदि आप एक सिर शुरू करना चाहते हैं, तो आप बूस्ट के क्रियान्वयन पर विचार करना चाह सकते हैं d_ary_heap_indirect जो बूस्ट का हिस्सा है। ग्राफ ( d_ary_heap.hpp में)। यदि आप इसके साथ एक अच्छा काम करते हैं, तो आप इसे बूस्ट के लिए सबमिट कर सकते हैं। यह थोड़ा अच्छा जोड़ सकता है, क्योंकि इस तरह के एक कार्यान्वयन में निश्चित रूप से कई उपयोग हैं।

Comments