我使用無序地圖像unordered_map C++
unorderedmap.insert(make_pair(5, 6));
我怎麼能得到關鍵的位置迭代器(價值5)?我是否需要再次使用find(),或者我可以如何從返回值中獲取它?
謝謝。
我使用無序地圖像unordered_map C++
unorderedmap.insert(make_pair(5, 6));
我怎麼能得到關鍵的位置迭代器(價值5)?我是否需要再次使用find(),或者我可以如何從返回值中獲取它?
謝謝。
假設你正在使用this unordered_map
,迭代器:
unorderedmap.insert(make_pair(5, 6)).first;
這是從http://www.cplusplus.com/reference/stl/map/insert/
採取所以如前所述,使用對::第一個獲得迭代器。
第一個版本返回一個對,與 其成員對::第一設定爲 迭代地指向新 插入元件或給元件 已經在 地圖有其相同的值。 對中的pair :: second元素在插入新元素 時設置爲true;如果存在具有相同值的元素 ,則將該元素設置爲false。
首先unordered_map
不是標準容器。但是如果您使用的編譯器提供的unordered_map
提供的API類似於this,那麼它會返回一對<iterator,bool>
。可以使用.first
訪問的對的iterator
部分將爲您提供插入元素的位置(如果插入成功,則可以使用bool second
進行測試)。
的unordered_map
界面類似於set
界面或該map
接口insert
方法返回一個std::pair<iterator,bool>
:
bool
是真實的在容器中已經存在類似的鑰匙iterator
指向正確的元件:或者已有的或者新插入的鑰匙取決於具體情況因此,如果你只希望訪問元素,你可以簡單地使用:
map.insert(std::make_pair(key,value)).first
但是做檢查,你不需要知道,如果插入成功與否,在一般人關心它:)
'.second'告訴你它是否成功。 – 2010-11-08 10:43:15