में प्री-आवंटित बाल्टी मैं बड़ी मात्रा में डेटा स्टोर करने के लिए gnu ++ 0x से unordered_map का उपयोग कर रहा हूं। मैं बड़ी संख्या में तत्वों के लिए स्थान आवंटित करना चाहता हूं, क्योंकि मैं उपयोग की गई कुल स्थान को बाध्य कर सकता हूं।सी ++ unordered_map
std::unordered_map m;
m.resize(pow(2,x));
जहां एक्स में जाना जाता है:
मैं ऐसा करने में सक्षम होने के लिए क्या चाहते हैं कॉल है।
unordered_map इसका समर्थन नहीं करता है। यदि संभव हो तो मैं unordered_map का उपयोग करूंगा, क्योंकि यह अंततः मानक का हिस्सा होगा।
कुछ अन्य बाधाओं:
विश्वसनीय हे (1) का उपयोग और नक्शे के उत्परिवर्तन की आवश्यकता है। वांछित हैश और तुलना कार्यों पहले से ही गैर मानक और कुछ हद तक महंगा हैं। ओ (लॉग एन) उत्परिवर्तन (जैसा कि std :: map के साथ) बहुत महंगा है।
-> महंगा हैश और तुलना भी अमूर्त-आधारित विकास के तरीके को महंगी बनाती है। प्रत्येक अतिरिक्त डालने के लिए उन कार्यों से ओ (एन) संचालन की आवश्यकता होती है, जिसके परिणामस्वरूप एल्गोरिदम के रन टाइम में एक अतिरिक्त वर्गिक शब्द होता है, क्योंकि घातीय भंडारण आवश्यकताओं को ओ (एन) वृद्धि की आवश्यकता होती है।
आप संकेत का उपयोग कर रहे हैं, जैसे कि यह है: इटरेटर std :: set :: insert (iterator hint, const value_type और value); http://en.cppreference.com/w/cpp/container/set/insert, अनुचित शब्द दिखता है। –