对于unordered_map erase(),我看到一些线程建议了不同的执行方法(比如从erase()的返回中获取下一个元素)。然而,我没有看到有人提出以下建议。因此,我想知道这种方法是否存在一些问题:
for (auto it1 = map.begin(); it1 != map.end(); )
{
auto it2 = it1++; //it2 assigned before it1 incremented
map.erase(it2);
}
这种方法很好用。
对被擦除元素的引用和迭代器无效。其他引用和迭代器不受影响。