c++ - Using an initializer_list on a map of vectors -


मैं & lt; ints, vector & lt; ints & gt; का एक मानचित्र प्रारंभ करने का प्रयास कर रहा हूं। & Gt; नए 0x मानक का उपयोग करते हुए, लेकिन मुझे वाक्यविन्यास सही नहीं मिल सकता है। मैं कुंजी के साथ एक प्रविष्टि के साथ मानचित्र बनाना चाहता हूं: मान = 1: & lt; 3,4>

<पूर्व> #include & lt; initializer_list & gt; # शामिल करें & lt; नक्शा & gt; # शामिल करें & lt; vector & gt; नेमस्पेस एसटीडी का उपयोग करना; मानचित्र & lt; int, vector & lt; int & gt; & Gt; ए = {1, {3,4}}; ....

यह जीसीसी 4.4.3 का उपयोग करते हुए निम्नलिखित त्रुटि से मरता है:

त्रुटि: std :: map & lt; पूर्णांक, std :: वेक्टर & LT; पूर्णांक, std :: संभाजक & LT; पूर्णांक & gt; & Gt;, std :: कम & lt; int & gt; std :: आबंटक & lt; std :: जोड़ी & lt; const int, std :: vector & lt; int, std :: आबंटक & lt; int & gt; & Gt; & Gt; & Gt; & Gt ;: नक्शा (& lt; ब्रेस-संलग्न आरंभिक सूची & gt;)

संपादित करें

कॉगविल द्वारा दिए गए सुझाव के बाद और अतिरिक्त इसे अब एक चेतावनी के साथ संकलित किया गया है जिसे -fano-deduce-init-list flag का उपयोग करने से छुटकारा मिल सकता है क्या ऐसा करने में कोई खतरा है?

जैसा कि उपर्युक्त टिप्पणी का उल्लेख है, {1, {3,4}} मानचित्र में एक तत्व है, जहां कुंजी 1 है और मान {3,4} है। तो, आपको क्या चाहिए {{1, {3,4}}}

त्रुटि को आसान बनाते हुए:

  त्रुटि: कॉल करने के लिए कॉल करने के लिए कोई भी मेल नहीं खाती; & lt; int, vector & lt; int & gt; & gt; :: मानचित्र (& lt; brace-enclosed initializer सूची & gt; ;)  

एक सटीक त्रुटि नहीं है, लेकिन फिर भी कुछ उपयोगी है


Comments