4

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

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
4

1 回答 1

4

这可以解决问题:

the_map.replace(iter, derived_object);

哪里,当然the_map是地图分成了哪些iter点。

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

于 2013-01-25T00:54:17.820 回答