- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
给定一个键,我试图替换一个值。对于不使用指针的常规映射,我只是使用了以下调用
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
里面的 map 点数。
请注意 ptr_map<K,V>::replace
返回 ptr_map<K,V>::auto_type
,因此您可以根据需要获取替换的对象。当然,如果您忽略它,它会自动销毁,您永远不需要知道它在那里。
关于c++ - boost ptr_map 替换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14512642/
我正在使用来自 boost 的 ptr_map 来存储从某些基本抽象类型派生的对象。 class Entity { virtual void foo() = 0; }; class Entity1 :
我有一些预定义类型继承了 boost::noncopyable(因此我必须将指针存储在这些对象上)。我使用 boost::ptr_map。据我所知,其中的第二个参数已经是一个指针。所以,代码: ptr
如果键存在,ptr_map 的插入方法不会更新数据。所以我们需要使用替换: boost ptr_map replacing the value ptr_map有insertOrUpdate的方法吗?
我决定放弃我项目的 boost 。有什么方法可以最好地实现容器而不是 ptr_map ?据我所知,它拥有一个智能指针作为一个值。也许QMap>能做到吗? 最佳答案 std::map> 有什么问题? ?
我正在处理一个现有的项目,我正在尝试替换一个 std::map用boost::ptr_map .问题是我找不到将一对插入 map 的方法。似乎所有的插入函数都不能接受常量值。有解决办法吗?我也尝试过使
我有一些要构建的代码。该代码使用 boost::ptr_map 类来序列化某些对象。我有带有 boost1.38 的 Visual Studio 2008,我从编译器中收到以下错误。我想知道是否还有其
给定一个键,我试图替换一个值。对于不使用指针的常规映射,我只是使用了以下调用 iter->second = object; //Where object was passed in by refere
我有一个 boost::ptr_map,它将抽象基类(例如 VectorWrapperBase)存储为值,这允许我将字符串映射到不同类型的 vector 。 boost::ptr_map memory
我正在尝试创建枚举类型到工厂对象的映射,但无法获得似乎可以在 MSVC9 上编译的有效代码(使用 C++03): namespace detail { class INoteCreator
在我的 last question 之后我有一个抽象基类 Action,它充当执行各种不同操作的接口(interface)。为了实现抽象层,我有一个 ActionHandler 类,其中存储各种 Ac
如何通过 boost::ptr_map 有效地使用 BOOST_FOREACH(字符数/可读性)? Kristo 在他的 answer 中展示了可以将 BOOST_FOREACH 与 ptr_map
在我工作的公司,我们创建了一个名为“RestrictedMap”的类。这提供与常规 std::map 相同的接口(interface),但不允许您使用 [] 运算符。还提供了一些其他功能来舒适地与类一
我想在存储自身实例的特定类中使用 boost::ptr_map。但是,请考虑以下示例: #include #include class foo { friend void boost::c
我一直在尝试使用 Boost Pointer Container 库,并利用他们的教程示例来感受这个库。也许我遗漏了什么,但我似乎无法存储我定义为 ptr_map 键的简单类。但是,相同的 key 适
void main() { typedef boost::ptr_map MyMap; //typedef std::map MyMap; // in contrast with std
我正在将一些旧代码移动到 c++14,它使用了已弃用的 auto_ptr 并且它与 boost:ptr_map 配合得很好,你可以这样做: auto_ptr foo(new Foo); boost:m
在寻找仅当键不存在时才插入 map 的有效方法时,我遇到了 this approach : MapType::iterator lb = mymap.lower_bound(k); if(lb !=
作为昨天发布的后续问题,Memory consumption of a pointer to vector of pointers ,我还有另一个关于 boost ptr_map 的内存使用的问题,键
在 c++11 中,auto_ptr 已弃用,取而代之的是更合理的 unique_ptr。唉,如果你使用 boost::ptr_map,auto_ptr 就完成了一个非常方便的用途: std::aut
我是一名优秀的程序员,十分优秀!