stl - Accessing c++ maps using a different class than the index -


मान लें कि आपके पास एक वर्ग है:

  वर्ग SomeClass {सार्वजनिक: int x; कुछ क्लास () {x = रैंड (); } बूल ऑपरेटर & lt; (कॉन्स्ट कुछ क्लास & amp; rhs) const {रिटर्न x & lt; rhs.x; }};   

और फिर आपके पास यह है:

  मानचित्र & lt; कुछ क्लास, स्ट्रिंग & gt; हाँ;   

जाहिर है यह काम करेगा:

  हाँ [कुछ क्लास ()] = "वूट";   

लेकिन ऐसा कुछ करने का एक तरीका है:

  हाँ [3] = "हुह";   

काम कर रहा है? मेरा मतलब है, मैंने दूसरे ऑपरेटर के अतिरिक्त ऑपरेटर & lt; (int rhs) सेट करने की कोशिश की, लेकिन कोई पासा नहीं। क्या यह संभव है?

नक्शा 's [] ऑपरेटर केवल templated वर्ग को अपने पैरामीटर के रूप में लेता है इसके बजाय आप चाहते हैं कि आपके क्लास के एक विशिष्ट उदाहरण को पैदा करने का कोई तरीका है, जिसकी आप चाहते हैं। इस उदाहरण में, एक कन्स्ट्रक्टर जोड़ें जो आपको मान x को निर्दिष्ट करना चाहिए।

  वर्ग SomeClass {सार्वजनिक: int x; कुछ क्लास () {x = रैंड (); } कुछ क्लास (इंट ए): एक्स (ए) {} बूल ऑपरेटर & lt; (कॉन्स्ट कुछ क्लास एंड आरए) const {रिटर्न x & lt; rhs.x; }};   

और फिर

  हाँ [SomeClass (3)] = "हू" का उपयोग करें;   

या आप बस का उपयोग कर सकते हैं

  हाँ [3] = "हुह";   

जो एक ही बात करता है, SomeClass के कंस्ट्रक्टर को बेतरतीब ढंग से कॉल कर रहा है।

Comments

Popular posts from this blog

qt - switch/case statement in C++ with a QString type -

python - sqlite3.OperationalError: near "REFERENCES": syntax error - foreign key creating -

Python's equivalent for Ruby's define_method? -