Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
给定一个键,我试图替换一个值。对于不使用指针的常规地图,我只是使用了以下调用
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
这可以解决问题:
the_map.replace(iter, derived_object);
哪里,当然the_map是地图分成了哪些iter点。
the_map
iter
请注意,它ptr_map<K,V>::replace返回 a ptr_map<K,V>::auto_type,因此您可以根据需要获取替换的对象。当然,如果你忽略它,它会自动销毁,你永远不需要知道它在那里。
ptr_map<K,V>::replace
ptr_map<K,V>::auto_type