14
और मैं इसे C++ में कैसे कर सकता हूं?क्या मैं एक मानचित्र परिभाषित कर सकता हूं जिसका कुंजी संरचना है?
और मैं इसे C++ में कैसे कर सकता हूं?क्या मैं एक मानचित्र परिभाषित कर सकता हूं जिसका कुंजी संरचना है?
आप किसी भी प्रकार का मानचित्र कुंजी के रूप में उपयोग कर सकते हैं, जब तक यह operator<
(साथ ही कंटेनर में संग्रहीत मानों के लिए सामान्य प्रति-और-असाइन आवश्यकताएं) लागू करता है।
उदाहरण के लिए:
struct example { int x; }
bool operator < (const example &l, const example &r) { return l.x < r.x; }
std::map<example, int> values;
वैकल्पिक रूप से, आप के बजाय operator<
को परिभाषित करने के नक्शे को टेम्पलेट के तीसरे तर्क के रूप में एक तुलना समारोह प्रदान कर सकता है। अधिक जानकारी here (पैरामीटर Compare
)।
"जब तक यह ऑपरेटर लागू करता है <" - या इस प्रकार के लिए 'std :: less' का विशेषज्ञता है। 'मानचित्र' डिफ़ॉल्ट रूप से 'कम' का उपयोग करता है, और 'कम' डिफ़ॉल्ट रूप से 'ऑपरेटर <' का उपयोग करता है, इसलिए इसमें दो मार्ग हैं। –