gpt4 book ai didi

c++ - 指针和容器

转载 作者:可可西里 更新时间:2023-11-01 15:05:14 25 4
gpt4 key购买 nike

我们都知道RAW指针需要包裹在某种形式的智能指针中才能得到异常安全的内存管理。但是当涉及到指针容器时,问题就变得更加棘手。

std 容器坚持包含的对象是可复制的,因此这排除了 std::auto_ptr 的使用,尽管您仍然可以使用 boost::shared_ptr 等。

但也有一些 boost 容器明确设计用于安全地保存指针:
参见 Pointer Container Library

问题是:在什么情况下我应该更喜欢使用 ptr_containers 而不是 smart_pointers 容器?

boost::ptr_vector<X>

or

std::vector<boost::shared_ptr<X> >

最佳答案

Boost 指针容器对其持有的资源拥有严格的所有权。 std::vector > 具有共享所有权。这可能是必要的,但如果不是,我会默认为 boost::ptr_vector 。 YMMV.

关于c++ - 指针和容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/116002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com