有一个容器map,我在其中循环
for (auto it = A.begin(); it != A.end(); ++it)
我遍历所有元素。
在某些时候,需要删除某些元素。同时,应该可以通过循环,即 迭代器it必须保留,并且在增量之后必须指向正确的元素(在被移除的元素旁边)。
如何实施?有人怀疑为此您需要重写循环本身,但我不知道如何以不同的方式遍历所有元素。
有一个容器map,我在其中循环
for (auto it = A.begin(); it != A.end(); ++it)
我遍历所有元素。
在某些时候,需要删除某些元素。同时,应该可以通过循环,即 迭代器it必须保留,并且在增量之后必须指向正确的元素(在被移除的元素旁边)。
如何实施?有人怀疑为此您需要重写循环本身,但我不知道如何以不同的方式遍历所有元素。
好吧,因为它
map::erase返回一个迭代器,指向已删除元素之后的元素,所以我只需将它包装++it在循环体中,仅当当前迭代器未被删除时才递增迭代器。如果删除,这本质上是一个增量...