मैं सी ++ 11 वाक्यविन्यास का उपयोग कर एक एसटीएल मानचित्र शुरू करने की कोशिश कर रहा हूं लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। प्रारंभ करने के बाद, जब मैं तत्व तक पहुंचने का प्रयास करता हूं, तो यह फू के निजी कन्स्ट्रक्टर को कॉल करने का प्रयास करता है। क्या मैं कुछ भुल गया? अगर मैं उपयोग करता हूं तो यह काम करता है। अगर मैं ऑपरेटर [] initialized मूल्यों तक पहुँचने के लिए इस्तेमाल कर सकते हैं मैं सोच रहा हूँ ...सी ++ 11 मानचित्र शुरू करें
#include <map>
#include <string>
class Foo{
public:
int a, b;
Foo(int a_, int b_){
a = a_;
b = b_;
}
private:
Foo(){};
};
int main(){
std::map<std::string, Foo> myMap = { {"1", Foo(10,5)}, {"2", Foo(5,10)} };
int b = myMap["1"].b; // it tries to call private constructor of Foo.
return 0;
}
स्पष्ट स्पष्टीकरण के लिए धन्यवाद। –