答案:C++智能指针与容器结合使用可实现安全的内存管理。通过
实现独占所有权,确保容器销毁时自动释放资源;用std::unique_ptr实现共享所有权,配合引用计数避免内存泄漏。两者均遵循RAII原则,提升异常安全性和代码清晰度。使用时需注意std::shared_ptr的移动语义、unique_ptr的循环引用及性能开销,推荐shared_ptrem和make_unplace_backique/make_shared优化构造。
<p><img src="https://img.php.cn/upload/article/000/969/633/175816446275250.png" alt="C++智能指针与容器结合使用方法">p> <p>C++智能指针与容器的结合使用,核心在于理解它们各自的生命周期管理机制,并选择合适的智能指针来适配容器的存储语义。说白了,就是如何让容器安全地管理那些我们通过position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>newpre>p>
解决方案
<p>当我们需要在C++容器中存放动态分配的对象时,直接使用裸指针无疑是埋下了一颗定时炸弹。手动管理内存的复杂性,尤其是在异常发生时,极易导致内存泄漏。智能指针的引入,就是为了解决这个痛点,它利用RAII(Resource Acquisition Is Initialization)原则,将资源的生命周期与对象的生命周期绑定,从而实现自动化的内存管理。p> <p>具体到实践中,我们通常会根据对象的拥有权语义来选择position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>p> <p>1. 独占所有权场景:使用 position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::unique_ptrpre>p> <p>pan>立即学习pan>“ps://pan.quark.cn/s/6e7abc4abb9f" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">C++免费学习笔记(深入)”;p> <p>如果容器中的每个元素都应该独占它所指向的对象,也就是说,当元素从容器中移除或容器本身被销毁时,它所管理的对象也应该被销毁,那么position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::unique_ptrpre>p>position:relative; padding:0px; margin:0px;"><pre>#include <vector> #include <memory> #include <iostream> class MyObject { public: int id; MyObject(int i) : id(i) { std::cout << "MyObject " << id << " created." << std::endl; } ~MyObject() { std::cout << "MyObject " << id << " destroyed." << std::endl; } void do_something() { std::cout << "MyObject " << id << " doing something." << std::endl; } }; // 示例:std::vector 存储 std::unique_ptrstd::vector<<MyObject>> objects; // 添加元素 // 方式一:直接创建并移动 objects.std::unique_ptrpush_back(<MyObject>(1)); // 方式二:使用 std::make_uniqueem,可能更高效,避免临时对象 objects.place_backem(place_back<MyObject>(2)); // 方式三:从现有 std::make_unique 移动 auto temunique_ptrp_ptr = <MyObject>(3); objects.std::make_uniquepush_back((temstd::movep_ptr)); // temp_ptr 此时为空 // 访问元素 objects[0]->do_something(); objects.back()->do_something(); // 移除元素(例如,移除最后一个) // 当 被销毁时,它指向的对象也会被销毁 objects.unique_ptrpop_back(); // MyObject 3 destroyed. // 容器销毁时,所有 MyObject 都会被销毁 // (示例中省略了 main 函数的结束,但原理一致)pre>p>这里要强调的是,position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::movepre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>emplace_backpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::make_uniquepre>p> <p>2. 共享所有权场景:使用 position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>p> <p>如果多个智能指针可以共同拥有一个对象,并且只有当所有拥有者都放弃所有权时,对象才会被销毁,那么position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>p>position:relative; padding:0px; margin:0px;"><pre>#include <vector> #include <memory> #include <iostream> class SharedResource { public: int value; SharedResource(int v) : value(v) { std::cout << "SharedResource " << value << " created." << std::endl; } ~SharedResource() { std::cout << "SharedResource " << value << " destroyed." << std::endl; } }; // 示例:std::vector 存储 std::shared_ptrstd::vector<<SharedResource>> resources; // 创建一个共享资源 auto s_std::shared_ptrptr1 = <SharedResource>(100); // 添加到容器,s_std::make_sharedptr1 和 resources[0] 现在共享所有权 resources.push_back(s_ptr1); // 再次添加,s_ptr1, resources[0], resources[1] 都共享所有权 resources.push_back(s_ptr1); // 也可以直接在容器中创建 resources.em(place_back<SharedResource>(200)); // 此时,s_std::make_sharedptr1 的引用计数是 3,resources[2] 的引用计数是 1 std::cout << "s_ptr1 ref count: " << s_ptr1.use_count() << std::endl; // 输出 3 // 访问元素 resources[0]->value = 101; std::cout << "s_ptr1 value: " << s_ptr1->value << std::endl; // 输出 101 // 移除容器中的一个元素 resources.pop_back(); // SharedResource 200 destroyed. (因为它的引用计数降为 0) std::cout << "s_ptr1 ref count after pop_back: " << s_ptr1.use_count() << std::endl; // 输出 2 // s_ptr1 超出作用域或被重置时,如果它是最后一个拥有者,SharedResource 100 才会销毁。 // (示例中省略了 main 函数的结束)pre>p>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>p>
为什么不直接用裸指针存放对象,智能指针能带来哪些实际好处?
<p>说实话,我刚开始学C++的时候,对智能指针这种“额外”的东西是有点抗拒的,觉得裸指针不是挺好用的吗?position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>newpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>deletepre>p> <p>直接用裸指针存放对象到容器里,最直接的问题就是内存泄漏。想象一下,你position:relative; padding:0px; margin:0px;"><pre>std::vector<MyObject*>pre>position:relative; padding:0px; margin:0px;"><pre> MyObject()newpre>position:relative; padding:0px; margin:0px;"><pre>clear()pre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>deletepre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>deletepre>ing pointer),后续的访问将是未定义行为,程序随时可能崩溃。p> <p>智能指针,尤其是position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>isition Is Initialization),简单讲就是“资源在构造时获取,在析构时释放”。p>
position:relative; padding:0px; margin:0px;"><pre>std::unique_ptr<MyObject>pre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>deletepre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>deletepre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::weak_ptrpre>position:relative; padding:0px; margin:0px;"><pre>std::vector<std::unique_ptr<MyObject>>pre>position:relative; padding:0px; margin:0px;"><pre>std::vector<std::shared_ptr<MyObject>>pre> <p>所以,与其说智能指针是“额外”的,不如说它是现代C++中不可或缺的基石,它让我们的代码更健壮、更安全,也更易于理解。p> phps.yycxw.com/ai/%E6%8C%96%E9%94%99%E7%BD%91"><img src="https://img.php.cn/upload/ai_manual/000/000/000/175679997460635.png" alt="C++智能指针与容器结合使用方法"> phps.yycxw.com/ai/%E6%8C%96%E9%94%99%E7%BD%91">挖错网 <p>一款支持文本、图片、视频纠错和AIGC检测的内容审核校对平台。p> img src="https://phps.yycxw.com/static/images/card_xiazai.png" alt="C++智能指针与容器结合使用方法">pan>29pan> phps.yycxw.com/ai/%E6%8C%96%E9%94%99%E7%BD%91"> pan>查看详情pan> <img src="https://phps.yycxw.com/static/images/cardxiayige-3.png" alt="C++智能指针与容器结合使用方法">
在使用iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;"><pre>std::unique_ptrpre>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>与容器时,有哪些需要注意的细节和常见误区?
position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::unique_ptrpre> <p>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::unique_ptrpre>p> <p>首先,最核心的特性是不可复制性。position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;"><pre>std::vector<<MyObject>> vec; auto std::unique_ptrp = <MyObject>(1); vec.std::make_uniquepush_back(p);pre>p> <p>要解决这个问题,你需要显式地进行所有权转移。p>
position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::movepre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::movepre>position:relative; padding:0px; margin:0px;"><pre>vec.push_back(std::move(p));pre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::movepre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;"><pre>ppre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>emplace_backpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::make_uniquepre>position:relative; padding:0px; margin:0px;"><pre>vec.emplace_back(std::make_unique<MyObject>(4));pre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>emplace_backpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::make_uniquepre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre> <p>另一个常见的误区是迭代器失效与所有权转移。当你从容器中删除一个position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;"><pre>std::vector<<T>>std::unique_ptrpre>position:relative; padding:0px; margin:0px;"><pre>ipre>position:relative; padding:0px; margin:0px;"><pre>auto p = vec[i];pre>position:relative; padding:0px; margin:0px;"><pre>auto p = (vec[std::movei]);pre>position:relative; padding:0px; margin:0px;"><pre>vec[i]pre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::movepre>position:relative; padding:0px; margin:0px;"><pre>vec.erase()pre>position:relative; padding:0px; margin:0px;"><pre>vec.remove()pre>p> <p>再者,自定义删除器。position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>r),这在管理非堆内存资源时非常有用,比如文件句柄、数据库连接等。例如,deleteposition:relative; padding:0px; margin:0px;"><pre><FILE, decltystd::unique_ptrpe(&fclose)> file_ptr(fopen("test.txt", "w"), &fclose);pre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>p> <p>最后,要小心容器内部的排序或重新分配操作。对于position:relative; padding:0px; margin:0px;"><pre>std::vectorpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::unique_ptrpre>position:relative; padding:0px; margin:0px;"><pre>std::listpre>position:relative; padding:0px; margin:0px;"><pre>std::mappre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>p>
何时选择iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>与容器结合,它又有哪些性能或设计考量?
position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre> <p>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>p> <p>何时选择position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>p>
position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::weak_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::weak_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre> <p>性能或设计考量:p> <p>虽然position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>p>
position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::weak_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::weak_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::make_sharedpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::make_sharedpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>newpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>std::make_sharedpre>position:relative; padding:0px; margin:0px;"><pre>std::vector<std::shared_ptr<MyObject>> vec; vec.emplace_back(std::make_shared<MyObject>(1));pre> <p>在我看来,选择position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>unique_ptrpre>position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;">position:relative; padding:0px; margin:0px;"><pre>shared_ptrpre>p><p>p> isplay: inline-flex;"> pan>相关标签:pan> isplay:flex;"> ick="hits_log(2,'www',this);" href-data="/zt/16474.html" target="_blank">回调函数 ick="hits_log(2,'www',this);" href-data="/zt/16887.html" target="_blank">工具 ick="hits_log(2,'www',this);" href-data="/zt/17526.html" target="_blank">栈 ick="hits_log(2,'www',this);" href-data="/zt/17539.html" target="_blank">ai ick="hits_log(2,'www',this);" href-data="/zt/17603.html" target="_blank">c++ ick="hits_log(2,'www',this);" href-data="/zt/17719.html" target="_blank">ios ick="hits_log(2,'www',this);" href-data="/zt/35787.html" target="_blank">作用域 ick="hits_log(2,'www',this);" href-data="/zt/57778.html" target="_blank">同步机制 ick="hits_log(2,'www',this);" href-data="/zt/74427.html" target="_blank">标准库 ick="hits_log(2,'www',this);" href-data="/zt/92702.html" target="_blank">为什么 ick="hits_log(2,'www',this);" href-data="/zt/122037.html" target="_blank">red ick="hits_log(2,'www',this);" href-data="/search?word=Resource" target="_blank">Resource ick="hits_log(2,'www',this);" href-data="/search?word=运算符" target="_blank">运算符 ick="hits_log(2,'www',this);" href-data="/search?word=赋值运算符" target="_blank">赋值运算符 ick="hits_log(2,'www',this);" href-data="/search?word=构造函数" target="_blank">构造函数 ick="hits_log(2,'www',this);" href-data="/search?word=fopen" target="_blank">fopen ick="hits_log(2,'www',this);" href-data="/search?word=fclose" target="_blank">fclose ick="hits_log(2,'www',this);" href-data="/search?word=auto" target="_blank">auto ick="hits_log(2,'www',this);" href-data="/search?word=局部变量" target="_blank">局部变量 ick="hits_log(2,'www',this);" href-data="/search?word=回调函数" target="_blank">回调函数 ick="hits_log(2,'www',this);" href-data="/search?word=循环" target="_blank">循环 ick="hits_log(2,'www',this);" href-data="/search?word=指针" target="_blank">指针 ick="hits_log(2,'www',this);" href-data="/search?word=栈" target="_blank">栈 ick="hits_log(2,'www',this);" href-data="/search?word=堆" target="_blank">堆 ick="hits_log(2,'www',this);" href-data="/search?word=线程" target="_blank">线程 ick="hits_log(2,'www',this);" href-data="/search?word=多线程" target="_blank">多线程 ick="hits_log(2,'www',this);" href-data="/search?word=值传递" target="_blank">值传递 ick="hits_log(2,'www',this);" href-data="/search?word=pointer" target="_blank">pointer ick="hits_log(2,'www',this);" href-data="/search?word=空指针" target="_blank">空指针 ick="hits_log(2,'www',this);" href-data="/search?word=map" target="_blank">map ick="hits_log(2,'www',this);" href-data="/search?word=" target="_blank">delete ick="hdeleteits_log(2,'www',this);" href-data="/search?word=对象" target="_blank">对象 ick="hits_log(2,'www',this);" href-data="/search?word=数据库" target="_blank">数据库 ick="hits_log(2,'www',this);" href-data="/search?word=自动化" target="_blank">自动化
大家都在看:
phps.yycxw.com/faq/1529448.html" title="C++数组指针与引用结合使用方法">C++数组指针与引用结合使用方法 ps://phps.yycxw.com/faq/1529380.html" title="C++数组与指针实现函数参数可变长度">C++数组与指针实现函数参数可变长度 ps://phps.yycxw.com/faq/1529361.html" title="C++如何使用数组存储多个数据">C++如何使用数组存储多个数据 ps://phps.yycxw.com/faq/1529277.html" title="c++如何使用模板函数和类_c++泛型编程之模板应用详解">c++如何使用模板函数和类_c++泛型编程之模板应用详解 ps://phps.yycxw.com/faq/1529264.html" title="C++如何读取整行数据getline使用技巧">C++如何读取整行数据getline使用技巧 its_log(2,'www',this);" href-data="/zt/16474.html" target="_blank">回调函数 ick="hits_log(2,'www',this);" href-data="/zt/16887.html" target="_blank">工具 ick="hits_log(2,'www',this);" href-data="/zt/17526.html" target="_blank">栈 ick="hits_log(2,'www',this);" href-data="/zt/17539.html" target="_blank">ai ick="hits_log(2,'www',this);" href-data="/zt/17603.html" target="_blank">c++ ick="hits_log(2,'www',this);" href-data="/zt/17719.html" target="_blank">ios ick="hits_log(2,'www',this);" href-data="/zt/35787.html" target="_blank">作用域 ick="hits_log(2,'www',this);" href-data="/zt/57778.html" target="_blank">同步机制 ick="hits_log(2,'www',this);" href-data="/zt/74427.html" target="_blank">标准库 ick="hits_log(2,'www',this);" href-data="/zt/92702.html" target="_blank">为什么 ick="hits_log(2,'www',this);" href-data="/zt/122037.html" target="_blank">red ick="hits_log(2,'www',this);" href-data="/search?word=Resource" target="_blank">Resource ick="hits_log(2,'www',this);" href-data="/search?word=运算符" target="_blank">运算符 ick="hits_log(2,'www',this);" href-data="/search?word=赋值运算符" target="_blank">赋值运算符 ick="hits_log(2,'www',this);" href-data="/search?word=构造函数" target="_blank">构造函数 ick="hits_log(2,'www',this);" href-data="/search?word=fopen" target="_blank">fopen ick="hits_log(2,'www',this);" href-data="/search?word=fclose" target="_blank">fclose ick="hits_log(2,'www',this);" href-data="/search?word=auto" target="_blank">auto ick="hits_log(2,'www',this);" href-data="/search?word=局部变量" target="_blank">局部变量 ick="hits_log(2,'www',this);" href-data="/search?word=回调函数" target="_blank">回调函数 ick="hits_log(2,'www',this);" href-data="/search?word=循环" target="_blank">循环 ick="hits_log(2,'www',this);" href-data="/search?word=指针" target="_blank">指针 ick="hits_log(2,'www',this);" href-data="/search?word=栈" target="_blank">栈 ick="hits_log(2,'www',this);" href-data="/search?word=堆" target="_blank">堆 ick="hits_log(2,'www',this);" href-data="/search?word=线程" target="_blank">线程 ick="hits_log(2,'www',this);" href-data="/search?word=多线程" target="_blank">多线程 ick="hits_log(2,'www',this);" href-data="/search?word=值传递" target="_blank">值传递 ick="hits_log(2,'www',this);" href-data="/search?word=pointer" target="_blank">pointer ick="hits_log(2,'www',this);" href-data="/search?word=空指针" target="_blank">空指针 ick="hits_log(2,'www',this);" href-data="/search?word=map" target="_blank">map ick="hits_log(2,'www',this);" href-data="/search?word=" target="_blank">delete ick="hdeleteits_log(2,'www',this);" href-data="/search?word=对象" target="_blank">对象 ick="hits_log(2,'www',this);" href-data="/search?word=数据库" target="_blank">数据库 ick="hits_log(2,'www',this);" href-data="/search?word=自动化" target="_blank">自动化