可能重複:
How to filter items from a std::map?
What happens if you call erase() on a map element while iterating from begin to end?當我從地圖中刪除條目時,map :: iterator會發生什麼?
我有對象的地圖,我想遍歷並刪除某些條目。
typedef std::map<A,B> MapT;
MapT m;
MapT::iterator it;
for(it = m.begin(); it != m.end(); it++) {
if(condition) m.erase(it);
}
我可以這樣做嗎?
迭代器都將失效。 – Joe
什麼是MapT? – Nawaz
它是'std :: map ':) – kravemir