2013-01-24 110 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,因此如果需要,您可以抓取替換的對象。當然,如果你忽略它,它會被自動銷燬,你永遠不知道它在那裏。