关于C++ 迭代器使用,十分方便,但是对于一个较为实际意义的操作,网上少有提及,那就是在一个容器里删除一个元素,如何有效快速,并且不出问题呢?
本文利用迭代器进行实现,关于其他的情况实现为什么不可以,这会先不赘述
实现代码:
typedef std::map<std::string,float> StringFloatMap;
StringFloatMap coll;
StringFloatMap::iterator iter;
for(iter = coll.begin();iter != coll.end();)
{
if(iter->second == value)
{
coll.erase(iter++);
}
else
{
++iter;
}
}