C++STL相关,请问这个迭代器为什么会这样?

    unordered_map<int, list<pair<int,int>>::iterator> _map;
    list<pair<int,int>> _list;
    _list.push_back(make_pair(1,1));
    _list.push_back(make_pair(2,2));
    _list.push_back(make_pair(3, 3));
    _map[2] = ++_list.begin();
    auto it = _map.find(2);
    _list.erase(it->second);
    _list.push_back(make_pair(2,10));
    //cout<<it->second->second<<endl;

调试后发现it变成(2,(2,10))了,但是被注释掉的那个语句是无法执行的

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^