सी ++ मानक का उपयोग कर एक std::map
निर्माता को परिभाषित करता है एक std::initializer_list
:std :: नक्शा प्रारंभकर्ता सूची निर्माता
map(std::initializer_list<value_type> init, const Allocator&);
हालांकि, जहां परिभाषित किया गया है तो क्या होता है प्रारंभकर्ता सूची डुप्लिकेट चाबी शामिल? क्या पहली कुंजी चुना गया है, या आखिरी? उदाहरण के लिए:
std::map<std::string, int> my_map {
{"a", 1},
{"a", 2}
};
व्यवहार में, यह है, यह insert()
तरह बर्ताव करता है लगता है ताकि नक्शा अब शामिल होंगे जो {a: 1}।
हालांकि, मैं इसके बारे में सी ++ मानक में कुछ भी नहीं ढूंढ पाया।
कम से कम उद्धृत भागों से तकनीकी रूप से, मानक उसमें निर्देशित नहीं लगता है या तत्वों को डाला जाएगा। – user2079303
@ उपयोगकर्ता 2079303 बेहतर? – BoBTFish
मुझे यकीन नहीं है कि यह पर्याप्त है या नहीं।निश्चित रूप से जब उत्तीर्ण पुनरावर्तक केवल इनपुट इटरेटर होता है, तो उन्हें क्रम में डाला जाना चाहिए, लेकिन प्रारंभकर्ता_सूची का पुनरावर्तक एक यादृच्छिक अभिगम इटरेटर है और मुझे विभिन्न प्रकार के इटरेटर के लिए विशेषज्ञता को प्रतिबंधित करने वाला नियम नहीं दिख रहा है। – user2079303