ptr

shared_ptr 循环引用以及解决办法

问题代码 #include <memory> #include <stdio.h> using namespace std; class A; class B { public: B() { printf("B()\n"); } ~B() { printf("~B()\n"); } void pri ......
shared_ptr 办法 shared ptr

借shared_ptr实现写时复制(COW)

原理 1、使用智能指针管理共享资源 2、write端,若引用计数为1,则write端独占资源,若引用计数不为1,则对共享资源备份进行写操作,以确保线程安全 3、read端,读之前引用计数加1,write端此时若并发访问共享资源,则会发现引用计数不为1,write端不会直接写共享资源,确保线程安全 代 ......
shared_ptr shared ptr COW

C++ unique_ptr简单使用

#######################智能指针(智能指针是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保在离开指针所在作用域时,自动正确的销毁动态分配的对象,防止内存泄漏)头文件#include <memory>unique_ptr特性 (属性为对象, 而不是指针, 管理指针) ......
unique_ptr unique ptr

C++(std::shared_ptr 的成员函数 reset)

std::shared_ptr 是 C++ 标准库提供的智能指针类型之一,用于管理动态分配的资源。reset 是 std::shared_ptr 类的成员函数之一,用于重新分配或重置 std::shared_ptr 所拥有的指针。 以下是 reset 成员函数的基本解释: 函数签名: templat ......
shared_ptr 函数 成员 shared reset

C++(std::unique_ptr)

std::unique_ptr 是 C++ 标准库中的一种智能指针,用于管理动态分配的内存。它是一种独占拥有权(exclusive ownership)的智能指针,保证同一时刻只有一个 std::unique_ptr 指向特定的资源。当 std::unique_ptr 被销毁时,它所拥有的资源也会被 ......
unique_ptr unique std ptr

C++(std::shared_ptr)

std::shared_ptr 是 C++ 标准库中的一个智能指针类,用于管理动态分配的内存。它提供了一种共享拥有权(shared ownership)的机制,通过引用计数来跟踪指向同一块内存的所有 std::shared_ptr 实例。当最后一个 std::shared_ptr 被销毁时,它会自动 ......
shared_ptr shared std ptr

unique_ptr 和 shared_ptr

`unique_ptr` 和 `shared_ptr` 是 C++ 标准库中的智能指针,用于管理动态分配的对象的生命周期,以避免内存泄漏和手动资源管理的问题。 1. **`unique_ptr`:** - `std::unique_ptr` 是一个独占所有权的智能指针,确保在任何时候只有一个 `un ......
unique_ptr shared_ptr ptr unique shared

Unit_ptr数据类型的理解

1、相关代码理解 在看代码时,发现有用到 SOCKET 我去找它们的定义,发现有如下定义: typedef UINT_PTR SOCKET 又去看UINT_PTR,LONG_PTR, LONG_PTR的定义,发现有如下定义: 1 typedef _W64 int INT_PTR, *PINT_PTR ......
Unit_ptr 类型 数据 Unit ptr

汇编-PTR指针

......
指针 PTR

C++ weak_ptr的应用场景有哪些?

C++: weak_ptr到底有什么用? 很多人对std::weak_ptr的认识只是不增加std::shared_ptr的引用计数,可以用来解决std::shared_ptr可能造成的循环引用问题。但是,实际对它的认识还是不够深刻,本文将从几个实际应用场景讲解,深入了解这种智能指针。比如,你是否知 ......
weak_ptr 场景 weak ptr

汇编-PTR修改操作数大小

PTR操作符可以覆盖一个已经被声明过的操作数的大小。只有在试图用不同于汇编器认定的大小属性来访问操作数时,这个操作符才是必需的。例如, 假设想要将一个双字变量my Double的低16位传送给A X。由于操作数大小不匹配,汇编器不允许这种传送: ......
操作数 大小 PTR

C++ | 智能指针之模仿实现shared_ptr

template<class T> class Shared_pointer{ private: ssize_t *_ref_count; // 计数器的指针 T *_ptr; // 元素的指针 std::mutex *mtx; // 计数器的锁 public: explicit Shared_po ......
指针 shared_ptr 智能 shared ptr

shared_ptr在多线程下的安全性问题

1. 引用 boost官方文档中有如下结论: https://www.boost.org/doc/libs/1_57_0/libs/smart_ptr/shared_ptr.htm#ThreadSafety 1)同一个shared_ptr被多个线程“读”是安全的; 2)同一个shared_ptr被多 ......
线程 shared_ptr 安全性 shared 问题

手撕智能指针shared_ptr

#include <bits/stdc++.h> using namespace std; class Count { private: int cnt; public: Count() :cnt(1) {} ~Count() = default; void addcount() { ++cnt; ......
指针 shared_ptr 智能 shared ptr

C++11中的智能指针shared_ptr、weak_ptr源码解析

https://www.jb51.net/article/224028.htm − 目录 1、前言 2、源码准备 3、智能指针概念 4、源码解析 4.1、shared_ptr解析 4.1.1、shared_ptr 4.1.2、__shared_ptr 4.1.3、__shared_count 4.1 ......
指针 shared_ptr ptr 源码 weak_ptr

const char *ptr和char const *ptr以及char* const ptr的区别

const char *ptr 和 char const *ptr => 这里这么理解,这个表示的是*ptr, 也就是指针指向的值,而修饰这个指针指向的值 (*ptr)的是const char或者char const, 表示两个意思: const => 表示是个常量,也就是说*ptr这个指针指向的值 ......
const char ptr

c++中unique_ptr 的使用和理解

# unique_ptr 的使用 `std::unique_ptr`是c++11起引入的智能指针,为什么必须要在c++11起才有该特性,主要还是c++11增加了move语义,否则无法对对象的所有权进行传递。 ## unique_ptr 介绍 - unique_ptr 不共享它的指针。它无法复制到其他 ......
unique_ptr unique ptr

c++中的weak_ptr的使用与理解

# weak_ptr 的使用 $\quad$关于为什么使用 `weak_ptr`,以及他的使用场景,我们在[这篇文章](https://www.cnblogs.com/weihao-ysgs/p/shared_ptr-weak_ptr.html)中已经进行了介绍。而对于其具体的使用方法,比如说如何通 ......
weak_ptr weak ptr

std::shared_ptr 线程安全方面的思考

一直惦记着 std::shared_ptr 线程安全的问题,看了些文章后,又怕过段时间忘记了,遂记录下来 std::shared_ptr 的线程安全问题主要有以下两种: 引用计数的加减操作是否线程安全 std::shared_ptr 修改指向时是否线程安全 第一个问题的答案: 是线程安全的,因为是原 ......
线程 shared_ptr 方面 shared std

unique_ptr 与 shared_ptr 的 deleter

使用`std::unique_ptr`定义(声明)一个对象的时候,需要知道这个对象的`Deleter`,`std::unique_ptr`的原型如下: ```cpp template > class unique_ptr; ``` 如果在定义/声明一个unique_ptr对象的时候,这个对象是`im ......
unique_ptr shared_ptr ptr deleter unique

7.说说你了解的auto_ptr作用

# 7.说说你了解的auto_ptr作用 1.auto_ptr的出现,主要是为了解决“有异常抛出时发生内存泄漏”的问题;抛出异常,将导致指针p所指向的空间得不到释放而导致内存泄漏; 2.auto_ptr构造时取得某个对象的控制权,在析构时释放该对象。我们实际上是创建一个auto_ptr\类型的局部对 ......
auto_ptr 作用 auto ptr

Smart Ptr - intrusive

# intrusive_ref_counter ```cpp template class intrusive_ref_counter struct thread_unsafe_counter struct thread_safe_counter ``` The `intrusive_ref_cou ......
intrusive Smart Ptr

shared_ptr包装this指针构造bug

[toc] * 成员函数里用shared_ptr包装this指针,当shared_ptr析构了,就会调用this对象的析构函数,是非常可怕的事情。 ``` class A { void eat() { std::shared_ptr p(this); ptr->status = "吃了"; } } ......
指针 shared_ptr shared this ptr

C++中使用typedef定义的UNIT_PTR,LONG_PTR等

在看代码时,发现有用到WPARAM, LPARAM, LRESULT 我去找它们的定义,发现在C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared\minwindef.h 中,有如下定义 /* Types use for ......
PTR UNIT_PTR LONG_PTR typedef UNIT

shared_ptr的循环引用

class Controller { public: Controller() = default; ~Controller() { std::cout << "in ~Controller" << std::endl; } class SubController { public: SubCont ......
shared_ptr shared ptr

C++11之智能指针unique_ptr

std::unique_ptr 是 C++ 标准库中的智能指针类,用于管理动态分配的对象。它提供了独占式拥有权,即在任何时候只能有一个 std::unique_ptr 拥有对对象的唯一所有权。当 std::unique_ptr 被销毁或重置时,它会自动删除所管理的对象,从而避免内存泄漏。 std:: ......
指针 unique_ptr 智能 unique ptr

Incomplete types and shared_ptr / unique_ptr

If the object being deleted has incomplete class type at the point of deletion and the complete class has a non-trivial destructor or a deallocation f ......
Incomplete shared_ptr unique_ptr ptr shared

C++智能指针:weak_ptr

weak_ptr虽然是智能指针,但实际上是作为shared_ptr的辅助指针使用。weak_ptr通常不单独使用,一般用于查看对应的shared_ptr的信息。weak_ptr没有重载*,->等指针运算符。weak_ptr对象不会影响shared_ptr对象的引用计数。 #include<iostr ......
指针 weak_ptr 智能 weak ptr

C++智能指针:shared_ptr、unique_ptr

C++内存资源管理不当。比如:(1) 有些内存资源已经被释放,但指向它的指针并没有改变指向(成为了野指针),并且后续还在使用;(2) 有些内存资源已经被释放,后期又试图再释放一次(重复释放同一块内存会导致程序运行崩溃);(3) 没有及时释放不再使用的内存资源,造成内存泄漏,程序占用的内存资源越来越多 ......
指针 shared_ptr unique_ptr ptr 智能

c++ 智能指针std::shared_ptr

c++11中常用的智能指针有shared_ptr,unique_ptr与weak_ptr。 unique_ptr是独占型指针,其计数永远为1,无拷贝构造函数,但可以使用std::move转移资源所有权。 weak_ptr没有资源所有权,一般用来辅助shared_ptr使用,多使用于多线程,循环等场景 ......
指针 shared_ptr 智能 shared std
共42篇  :1/2页 首页上一页1下一页尾页