1
我有一個 unordered_map<string, list<SomeClass>::iterator>
unordered_map迭代器 - 如何檢查未初始化的元素
我想插入在這個圖中的元素,但只有當它不存在。如果存在,我不想覆蓋現有的項目。此外,我想避免做兩個查找來檢查項目是否存在,然後進行插入。我得出的結論是我應該使用operator []來獲取帶有該鍵的元素,檢查它是否有效,如果沒有,則初始化它。問題是元素是一個迭代器,我必須檢查它是否被初始化,這是不可能的。我可以使用派生自列表迭代器類的類,並實現defautl構造函數以將其初始化爲「無效」值,但在構造函數中,我無法訪問列表實例以獲取其end()迭代器。 任何想法如何做到這一點?
哈!叫我笨,但我一直認爲插入覆蓋值:) –
@AlexanderVassilev來自[此插入參考](http://en.cppreference.com/w/cpp/container/unordered_map/insert):「如果容器中尚未包含具有等效鍵的元素,則將元素插入到容器中。「 –