मैं निम्नलिखित टेम्पलेट समारोह है कि बदली कुंजी और मूल्यों के साथ दिया नक्शे की एक प्रति रिटर्न दिया है:दोनों std :: नक्शे और std :: unordered_map के साथ एक टेम्पलेट काम करना
template<typename M>
auto swapKeysAndValues(const M& m) {
std::map<typename M::mapped_type, typename M::key_type> swapped;
for (auto& p : m) {
swapped.emplace(p.second, p.first);
}
return swapped;
}
वहाँ का एक तरीका है उपरोक्त टेम्पलेट को std::map
और std::unordered_map
दोनों के लिए काम करना? यही है, std::map<K, V>
के लिए, इसे std::map<V, K>
, और std::unordered_map<K, V>
पर वापस जाना चाहिए, इसे std::unordered_map<V, K>
वापस करना चाहिए।
एक अच्छी शुरुआत है, लेकिन आवंटकों, हैश कार्यों और तुलना के बारे में क्या भविष्यवाणी करता है? –
@ रिचर्डहोजेज मानक भविष्यवाणी/हैश/आवंटक वाले मानचित्रों के साथ ही काम करता है ... यह कहना मुश्किल है कि कौन सा तुलनित्र उपयोग किया गया था। – ForEveR
सहमत हैं। मुझे लगता है कि एक सही समाधान में शामिल जटिलता समाधान से समस्या को और जटिल बनाती है। यह शायद एक समारोह नहीं है जिसे परिभाषित किया जाना चाहिए। –