2012-11-13 11 views
7

मैं एक एम्बेडेड आवेदन लिख रहा हूँ, और पर्यावरण मैं का उपयोग नहीं, दुर्भाग्य से, वर्तमान में सी ++ 11 समर्थन करता है।decoupled संस्करण/unordered_map

मुझे हैश/अनॉर्डर्ड मानचित्र को लागू करने की आवश्यकता है (एक नियमित std::map प्रदर्शन कारणों से नहीं करेगा), लेकिन इसे साफ करने का कोई तरीका नहीं दिख रहा है।

बूस्ट व्यावहारिक रूप से पूरे पुस्तकालय में लाने के बिना काम नहीं करना चाहता है। यहां तक ​​कि एसजीआई से मूल एसटीएल hash_map भी कई शीर्षलेख चाहता है, और मानक लाइब्रेरी कार्यक्षमता डुप्लिकेट करता है, जिससे संदिग्ध फ़ंक्शन कॉल होता है। यह एक असली गड़बड़ है।

कार्यान्वयन, संस्करण, गुणवत्ता नियंत्रण, वी & वी, आदि की आसानी के लिए मुझे वास्तव में कुछ ऐसी चीज चाहिए जो मौजूदा मानक लाइब्रेरी का लाभ उठाती है और केवल कुछ ही शीर्षलेख फ़ाइलों में मौजूद है जो मैं उसी फ़ोल्डर में सही रख सकता हूं अन्य स्रोत/हेडर फाइलें। क्या ऐसी कोई चीज मौजूद है, या मैं आशा के बिना हूं? मैंने थोड़ी देर के लिए खोज की है, लेकिन खाली हाथ आ गया है।

किसी भी मदद के लिए बहुत बहुत धन्यवाद। यदि आवश्यक हो तो मैं निश्चित रूप से आगे स्पष्ट कर सकता हूं।

+0

क्या आपने कस्टम आवंटक के साथ 'std :: map' का उपयोग करने का प्रयास किया था? यह शायद आपकी सभी प्रदर्शन समस्याओं को ठीक करता है। –

+0

मेरी समस्या यह है कि मैं मानचित्र में/से नए तत्वों को लगातार हटा रहा/रख रहा हूं। अगर इसे हर बार चीजों को फिर से व्यवस्थित करना होता है, तो यह बहुत धीमा होता है। क्या इसे एक कस्टम आवंटक के साथ हल किया जा सकता है? मेरी अज्ञानता के लिए खेद है, मैंने पहले कभी भी 'std :: आवंटक' लेकिन कुछ भी नहीं उपयोग किया है। – llakais

+2

मेरे पास ऐसा कोई मामला नहीं था जहां संतुलन ने एक उल्लेखनीय प्रदर्शन समस्या उत्पन्न की। क्या आप _certain_ हैं? आरबी-ट्री संतुलन काफी तेज़ है, और यह केवल तब शेष होता है जब पेड़ _very_ lopsided होता है। –

उत्तर

1

आप जीएनयू कार्यान्वयन को देखने गए थे? मेरी उबंटू मशीन पर, unordered_map.h में कुछ भी शामिल नहीं है। इस फ़ाइल में

/usr/include/c++/4.6/bits/unordered_map.h 

जो लगभग 400 लाइनों है, हालांकि फ़ाइल "unordered_map" /usr/include/c++/4.6/ में अधिक हेडर है, लेकिन आप उन मुझे लगता है कि ठीक कर सकते हैं पर स्थित है।

मैं तुम्हें GNU.org (?) से लागू करने के लिए स्रोत कोड को खोजने और यह अपने आप को संकलित कर सकते हैं लगता है?

+0

मैं इसे अपने उबंटू पर भी देखूंगा, टिप के लिए धन्यवाद! – llakais

+0

क्षमा करें यह मुझे इतना ... मुझे लगता है कि तुम सही कि यह वास्तव में 'शामिल किया जाना चाहिए कि शीर्ष स्तर फ़ोल्डर में unordered_map' फ़ाइल है कर रहे हैं की जाँच करने के लिए समय लगा, लेकिन मुझे लगता है कि कुछ फेरबदल फ़ाइलों की कुल संख्या रखना चाहिए मैं नीचे लाने के लिए है। किसी भी मामले में पुराने एसजीआई एसटीएल का उपयोग करने से यह काफी बेहतर है। एक बार फिर धन्यवाद। – llakais

संबंधित मुद्दे