boost ptr_map替换值

时间:2013-01-24 23:18:20

标签: c++ boost

给定一个键,我试图替换一个值。对于不使用指针的常规地图,我只是使用以下调用

iter->second = object; //Where object was passed in by reference

如何使用boost :: ptr_map实现相同的目标?这里的概念是我们使用derived_object

替换整个类
iter->second = derived_object; //derived_object is a base_object pointer

1 个答案:

答案 0 :(得分:4)

这样可以解决问题:

the_map.replace(iter, derived_object);

当然,the_mapiter指向的地图。

请注意,ptr_map<K,V>::replace会返回ptr_map<K,V>::auto_type,因此您可以根据需要获取已替换的对象。当然,如果你忽视它,它会被自动销毁,你永远不需要知道它就在那里。