• std::shared_ptr 和 std::weak_ptr的用法以及引用计数的循环引用问题

    时间:2023-05-12 20:52:14

    在std::shared_ptr被引入之前,C++标准库中实现的用于管理资源的智能指针只有std::auto_ptr一个而已。std::auto_ptr的作用非常有限,因为它存在被管理资源的所有权转移问题。这导致多个std::auto_ptr类型的局部变量不能共享同一个资源,这个问题是非常严重的哦。...

  • [3] 智能指针std::auto_ptr

    时间:2023-02-15 16:17:51

    【1】std::auto_ptr对于编译器来说,智能指针实质是一个栈对象,而并非指针类型。智能指针通过构造函数获取堆内存的管理所有权,而在其生命期结束时,再通过析构函数释放由它所管理的堆内存。所有智能指针都重载了“operator->”操作符,直接返回对象的引用,用以操作对象。访问智能指针原来...

  • test dword ptr [eax],eax ; probe page. visual studio

    时间:2023-02-12 14:33:24

    当在函数中申请占用空间很大的数组、结构体时,会产生该问题。由于局部变量的申请空间存放于栈中,windows里默认栈内存是1M所以当申请空间大于1M时就会出现溢出错误通过debug就会进入以下文件chkask.asmchkstk.asm - C stack checking routine解决方法:扩...

  • C++11 shared_ptr, weak_ptr速成,以及放在stl集合类里面的注意点。

    时间:2023-02-07 17:01:55

    shared_ptr的初始化 shared_ptr<int> a(new int(6)); shared_ptr的操作 shared_ptr<A> a = A::create();a.get();  得到 A*a.reset();  不再引用A*shared_ptr&l...

  • C++11 weak_ptr智能指针

    时间:2023-01-31 16:25:20

    和 shared_ptr、unique_ptr 类型指针一样,weak_ptr 智能指针也是以模板类的方式实现的。weak_ptr<T>( T 为指针所指数据的类型)定义在<memory>头文件,并位于 std 命名空间中。因此,要想使用 weak_ptr 类型指针,程序中应...

  • shared_ptr智能指针源码剖析

    时间:2023-01-31 16:25:14

    (shared_ptr)的引用计数本身是安全且无锁的,但对象的读写则不是,因为 shared_ptr 有两个数据成员,读写操作不能原子化。根据文档(http://www.boost.org/doc/libs/release/libs/smart_ptr/shared_ptr.htm#ThreadSa...

  • 智能指针(一):STL auto_ptr实现原理

    时间:2023-01-15 18:27:57

    智能指针实际上是一个类(class),里面封装了一个指针.它的用处是啥呢?指针与内存说到指针自然涉及到内存.我们如果是在堆栈(stack)中分配了内存,用完后由系统去负责释放.如果是自定义类型,就会自动的去调用你的析构函数.但如果是在堆(heap)中分配了内存,也就是用malloc或者new.那只能...

  • 如何将BOOST_FOREACH与boost :: ptr_map一起使用?

    时间:2023-01-14 14:00:50

    How can I use BOOST_FOREACH efficiently (number-of-character/readability-wise) with a boost::ptr_map? 如何使用boost :: ptr_map有效地使用BOOST_FOREACH(字符数/可读性)...

  • 学 Win32 汇编[12]: PTR、OFFSET、ADDR、THIS

    时间:2023-01-04 01:06:56

    PTR: 指定要操作的数据尺寸 ; Test12_1.asm.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib...

  • 智能指针shared_ptr新特性shared_from_this及weak_ptr

    时间:2022-12-24 18:29:45

    enable_shared_from_this是一个模板类,定义于头文件<memory>,其原型为:template< class T > class enable_shared_from_this;       std::enable_shared_from_this 能让...

  • 智能指针shared_ptr

    时间:2022-12-24 18:10:18

    // 智能指针会自动释放所指向的对象。// shared_ptr的应用场景是:程序需要在多个对象间共享数据/* 先从应用场景入手吧,说矿工A发现了一个金矿。 * 然后矿工A喊来了矿工B,一起开采,不久后矿工A劳累过度死了。 * 矿工B继续开采着矿工A发现的金矿。 * 但是矿工B不久后得了尘肺病。 *...

  • C++智能指针shared_ptr

    时间:2022-12-24 18:07:21

    shared_ptr这里有一个你在标准库中找不到的—引用数智能指针。大部分人都应当有过使用智能指针的经历,并且已经有很多关于引用数的文章。最重要的一个细节是引用数是如何被执行的—插入,意思是说你将引用计数的功能添加给类,或者是非插入,意思是说你不这样做。Boost shared_ptr是非插入类型的...

  • c/c++ 智能指针 shared_ptr 和 new结合使用

    时间:2022-12-24 18:06:09

    智能指针 shared_ptr 和 new结合使用用make_shared函数初始化shared_ptr是最推荐的,但有的时候还是需要用new关键字来初始化shared_ptr。一,先来个表格,唠唠new和shared_ptr操作功能描述shared_ptr<T> p(q)智能指针p管理...

  • shared_ptr 和 unique_ptr

    时间:2022-12-23 17:52:10

    1.C++ 标准库智能指针c++11标准废除乐auto_ptr,使用这些智能指针作为将指针封装为纯旧 C++ 对象 (POCO) 的首选项。unique_ptr 只允许基础指针的一个所有者。 除非你确信需要 shared_ptr,否则请将该指针用作 POCO 的默认选项。 可以移到新所有者,但不会复...

  • [6] 智能指针boost::weak_ptr

    时间:2022-12-13 15:39:15

    【1】boost::weak_ptr简介boost::weak_ptr属于boost库,定义在namespace boost中,包含头文件 #include<boost/weak_ptr.hpp>便可以使用。【2】boost::weak_ptr详解智能指针boost::scope_ptr...

  • STL中的智能指针(Smart Pointer)及其源码剖析: std::auto_ptr

    时间:2022-12-06 08:00:47

    STL中的智能指针(Smart Pointer)及其源码剖析: std::auto_ptr​​auto_ptr​​​ 是STL中的智能指针家族的成员之一, 它管理由 ​​new expression​​​ 获得的对象,在 ​​auto_ptr​​​ 对象销毁时,他所管理的对象也会自动被 ​​dele...

  • STL中的智能指针(Smart Pointer)及其源码剖析: std::unique_ptr

    时间:2022-12-06 07:58:59

    STL中的智能指针(Smart Pointer)及其源码剖析: std::unique_ptr和 ​​std::auto_ptr​​​一样,​​std::unique_ptr​​​也是一种智能指针,它也是通过指针的方式来管理对象资源,并且在 ​​unique_ptr​​ 的生命期结束后释放该资源。​...

  • C++ 中boost::share_ptr智能指针的使用方法

    时间:2022-12-03 11:43:34

    这篇文章主要介绍了C++ 中boost::share_ptr智能指针的使用方法的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

  • 我应该自己擦除boost :: ptr_vector的指针吗?

    时间:2022-11-15 19:55:56

    I was wondering if this code leak : 我想知道这个代码是否泄漏: int main() { boost::ptr_vector <char> v; v.push_back(new char[10]); v.clear() } int main(){b...

  • C++ 智能指针 auto_ptr 和 shared_ptr

    时间:2022-10-26 13:26:31

    首先,如果你不知道什么是智能指针,请先移步:C++智能指针简单剖析1.auto_ptr #ifndef AUTO_PTR_H #define AUTO_PTR_H template<typename T> class auto_ptr { public : //使...