2013-01-24 63 views
4

给定一个键,我试图替换一个值。通过定期的地图,不使用指针,我只是用下面的调用boost ptr_map替换值

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

如何实现与升压:: ptr_map一样吗?这里的概念是,我们使用derived_object

iter->second = derived_object; //derived_object is a base_object pointer 

回答

4

这将这样的伎俩更换整个类:

the_map.replace(iter, derived_object); 

其中,当然,the_map是映射成iter点。

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