पर एक std :: कुंजी का सेट कैसे प्राप्त कर सकता हूं मैं आज सुबह एक एल्गोरिदम लिख रहा था और मैं एक जिज्ञासु स्थिति में भाग गया। मेरे पास दो std::map
एस है। मैं प्रत्येक की चाबियों के सेट पर एक सेट चौराहे करना चाहता हूं (यह पता लगाने के लिए कि कौन सी कुंजी दोनों मानचित्रों के लिए आम हैं)। भविष्य में किसी बिंदु पर, मुझे लगता है कि यह संभावना है कि मैं यहां भी सेट घटाव करना चाहूंगा। सौभाग्य से, एसटीएल में उन दोनों परिचालनों के लिए कार्य शामिल हैं। समस्या यह है कि, मुझे std::map
से बाहर की कुंजियों का std::set
नहीं मिल रहा है। क्या इसे करने का कोई तरीका है? मैं, कुछ के लिए देख रहा हूँ कि यह आसान होगा जैसे कि यह जावा में है:मैं std :: map
std::set<Foo> keys = myMap.getKeySet();
मेरे समझ है कि मैं नक्शे में iterators पर सीधे std::set_intersection()
फ़ंक्शन का उपयोग नहीं कर सकते क्योंकि नक्शे std::pair
वस्तुओं के बजाय का पर्दाफाश है बस चाबियाँ। साथ ही, मुझे नहीं लगता कि मानचित्र आदेश की गारंटी देता है। मुझे std::multimap
एस की एक जोड़ी पर भी यही ऑपरेशन करने में दिलचस्पी है, अगर इससे कोई फर्क पड़ता है।
संपादित: (MSVC++ 6), निफ्टी टेम्पलेट चाल है कि को बढ़ावा देने में उपलब्ध हैं के सबसे अधिक इस्तेमाल नहीं किया जा सकता मैं संकलक मैं का उपयोग करने के लिए मजबूर कर रहा हूँ की उम्र के कारण शुरू में है कि उल्लेख करना भूल गया।
एमएसवीसी ++ 6 पर छोड़ने के लिए इतनी जल्दी मत बनें - यह प्रश्न देखें http://stackoverflow.com/questions/252492/whats-the-latest-version-of-boost-compatible-with-vc6 –
मानचित्र –