【发布时间】:2013-04-23 11:16:49
【问题描述】:
我有boost::unordered_map<int, Animal*>,我需要删除所有插入值与Animal* a; 相同的指针( a 被赋予 Animal* 类似的参数,我有对于地图中的不同键,在几个地方有相同的 Animal* 指针)。
boost::unordered_map<int, Animal*> mp;
Animal* rex = new Animal("Rex");
mp[1]=rex;
mp[2]=rex;
mp[9]=rex;
如何删除所有值为rex的记录,然后只从堆中删除一次rex?
【问题讨论】:
-
因为地图是单向优化的(key-to-value)。在您的情况下,您必须遍历所有项目并逐一删除它们。