嗨我不知道如果迭代器會改變,如果unordered_map的大小改變,然後rehashed?我試圖創建一個迭代器指針的結構,將unordered_map中的幾個元素放在一起。將unordered_map迭代器更改?
#include<string>
#include<tr1/unordered_map>
struct linker
{
unordered_map<Key,T>::iterator it;
unordered_map<Key,T>::iterator it1;
unordered_map<Key,T>::iterator it2;
};
unordered_map<string,int> map({{"aaa",1},{"bbb",2},{"ccc",3},{"ddd",4}});
linker node1 = new linker;
node1.it = map.find("aaa");
node1.it1 = &map.find("ccc");
node1.it2 = &map.find("ddd");
map.insert(make_pair({"sss",23}));
.....
插入太多元素後,迭代器指針是否仍然可用並在地圖大小更改之前指向相同的元素/鍵?
我相信如果你的插入引起重新散列,所有的迭代器都將失效。 – GWW
所以我應該創建一個結構來存儲將是字符串的鍵? – weeo