嗨我不知道如果迭代器会改变,如果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