C++標準定義了使用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}。
但是,我無法在C++標準中找到任何關於此的內容。
技術上,至少從引用的部分來看,標準似乎並不指示在哪個元素將被插入。 – user2079303
@ user2079303更好? – BoBTFish
我不確定這是否足夠。當然,當傳入的迭代器只是一個輸入迭代器時,它們必須按順序插入,但initializer_list的迭代器是一個隨機訪問迭代器,我沒有看到禁止不同類型迭代器專用化的規則。 – user2079303