E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
shared_ptr
C++11智能指针
shared_ptr
,weak_ptr以及循环引用的问题
1.智能指针通常内存管理中存在以下问题:重复析构(释放)同一块内存导致程序运行崩溃例如,如果类中有指针成员,浅拷贝造成两个对象的指针成员指向同一个内存。当程序运行结束,一块内存被析构了两次。有些资源的内存被释放,但是其指针并未被修改指向。voidtest(){int*dp=newint[10];deletedp[];//忘记添加dp=nullptr;}上面这种情况导致后续万一在该函数使用了dp指针
来自比邻星
·
2023-11-24 16:53
C++
c++
c语言
智能指针
循环引用
C++-智能指针
当栈对象的生存周期结束后,会在析构函数中释放掉申请的内存但是智能指针也会痴线内存泄漏问题特点智能指针会负责自动释放所指向的对象主要是为了避免内存泄漏的问题种类共享指针
shared_ptr
生命周期shader_ptr
彭同学她同桌
·
2023-11-24 16:23
C++
c++
【C++11】智能指针 {内存泄漏;RAII设计思想,智能指针的拷贝问题;auto_ptr;unique_ptr;
shared_ptr
& weak_ptr:线程安全问题,循环引用问题,定制删除器}
一、为什么需要智能指针?下面我们先分析一下下面这段程序有没有什么内存方面的问题?intdiv(){inta,b;cin>>a>>b;if(b==0)throwinvalid_argument("除0错误");returna/b;}voidFunc(){//1、如果p1这里new抛异常会如何?//2、如果p2这里new抛异常会如何?//3、如果div调用这里又会抛异常会如何?int*p1=newin
芥末虾
·
2023-11-23 11:59
C++
c++
指针
内存泄漏
线程安全
开发语言
智能指针:
shared_ptr
和unique_ptr,优先使用unique_ptr
通常有两大类型的智能指针:独占式unique_ptr和共享式
shared_ptr
。
小岛阿飞
·
2023-11-22 23:02
C++
【C++进阶之路】第八篇:智能指针
内存泄漏分类(了解)3.如何检测内存泄漏(了解)4.如何避免内存泄漏三、智能指针的使用及原理1.RAII2.智能指针的原理3.std::auto_ptr(了解)4.std::unique_ptr5.std::
shared_ptr
Captain-Lin
·
2023-11-22 06:14
C++学习与应用
c++
java
算法
开发语言
c语言
哈希算法
数据结构
智能指针weak_ptr的作用
与之相对,
shared_ptr
是强引用,只要有一个指向对象的
shared_ptr
存在,该对象就不会析构,直到指向对象的最后一个
shared_ptr
析构或reset()时才会被销毁。利用weak_ptr
从零开始学习的ZHL
·
2023-11-22 01:18
C++学习
《boost程序库完全开发指南》读书笔记
时间日期timer库,progress_timer,progress_display,date_time第三章:内存管理,智能指针smart_ptr库,scoped_ptr,scoped_array,
shared_ptr
海棠如醉
·
2023-11-20 17:10
编程语言
c++
【C++】智能指针
目录智能指针auto_ptr:scoped_ptrunique_ptr带引用计数的智能指针
shared_ptr
,weak_ptr智能指针的交叉引用(循环引用)问题多线程访问共享对象问题实现带引用计数的智能指针自定义删除器橙色不带引用计数的智能指针
努力学习的小马
·
2023-11-20 03:38
我的c++学习之路
c++
开发语言
智能指针
智能指针1.shared_ptr2.参考1.shared_ptr
shared_ptr
的计数器是线程安全的。
qq_26697045
·
2023-11-19 06:05
C++应用
c++
智能指针面试题
智能指针被问到的概率还是很大的,特别是
Shared_ptr
,最好会手撕,亲身经历!
Wind哥
·
2023-11-19 04:11
c++
当析构函数遇到多线程 ── C++中线程安全的对象回调
如何避免这种竞态条件是C++多线程编程面临的基本问题,可以借助boost的
shared_ptr
和weak_ptr完美解决。这也是实现线程安全的Observer
爱橙子的OK绷
·
2023-11-17 05:31
网络编程与多线程
多线程
阿里云网络一面c++
编程用过吗8、四次挥手9、拥塞控制算法10、重载重写11、虚函数相关,虚函数表在哪里12、malloc分配内存相关,内存分配策略13、STL容器有哪些14、vector和list比较15、C++11智能指针,
shared_ptr
怎么又有bug单
·
2023-11-15 17:28
面经
阿里
面经
c++
阿里云
阿里云C++二面面经
1.智能指针1、
shared_ptr
原理:
shared_ptr
是基于引用计数的智能指针,用于管理动态分配的对象。无论std::
shared_ptr
存储在堆区还是栈区,它所指向的内存块始终存储在堆区。
Ap21ril
·
2023-11-15 17:55
面经汇总
c++
C++ std::make_unique和std::make_shared用法
std::make_unique和std::make_shared是C++11引入的两个辅助函数,用于创建动态分配的智能指针std::unique_ptr和std::
shared_ptr
,分别帮助避免了显式使用
千山万水人海中666
·
2023-11-15 07:57
C++
c++
make_unique
make_shared
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)
+多线程1.1thread库1.2mutex库1.3RAII锁1.4atomic+CAS1.5condition_variable1.6分别打印奇数和偶数2.shared_ptr线程安全2.1库里面的
shared_ptr
GR_C
·
2023-11-13 21:53
④从C语言到C++
c语言
c++
多线程
安全
C/C++编程:enable_shared_from_this
定义于头文件,其原型为:templateclassenable_shared_from_this;std::enable_shared_from_this能让一个对象(假设其名为t,而且已经被一个std::
shared_ptr
OceanStar的学习笔记
·
2023-11-13 09:02
C++
c++
c语言
开发语言
《C++标准库》学习笔记 — 通用工具
《C++标准库》学习笔记—通用工具一、智能指针1、误用shared_ptr2、make_shared和allocate_shared3、
shared_ptr
转型二、TypeTrait和TypeUtility1
coding-hwz
·
2023-11-13 09:59
读书笔记
#
《C++标准库》
c++
内存管理
类型处理
分数运算
标准库
C++11新特性学习笔记
文章目录主要内容编译方法智能指针智能指针主要解决以下问题:
shared_ptr
内存模型智能指针使用案例智能指针可以自动释放占用的内存Notesshared_ptr共享的智能指针
shared_ptr
的基本用法和常用函数初始化
FuzhouJiang
·
2023-11-13 09:56
C/C++
c++
学习
开发语言
C++学习笔记之enable_shared_from_this
C++学习笔记之enable_shared_from_this:enable_shared_from_this,是一个以其派生类为模板类型实参的基础模板,继承它,this指针就能变成
shared_ptr
geek_note
·
2023-11-13 09:54
C/C++
《Effective Modern C++》学习笔记之条款十九:使用std::
shared_ptr
管理具备共享所有权的资源
std::
shared_ptr
(共享式智能指针)通过引用计数的方式实现资源共享,且当引用计数为0时,资源将被释放。
Chiang木
·
2023-11-13 09:23
《Effective
Modern
C++》读书笔记
c++
shared_ptr
智能指针
共享指针
unique_ptr
学习笔记:
shared_ptr
陷阱
学习笔记:
shared_ptr
陷阱分类:C++2011-11-2018:221238人阅读条款1:不要把一个原生指针给多个
shared_ptr
管理int*ptr=newint;shared_ptrp1(
BPSSY
·
2023-11-13 09:53
boost
【C++学习笔记】enable_shared_from_this
classPerson{public:Person()=default;~Person(){};std::shared_ptrgetPtr(){returnstd::
shared_ptr
(this);}
Go 鹏ya
·
2023-11-13 09:52
C++
c++
学习
笔记
条款20:当std::
shared_ptr
可能悬空时使用std::weak_ptr
自相矛盾的是,如果有一个像std::
shared_ptr
(见条款19)的但是不参与资源所有权共享的指针是很方便的。换句话说,是一个类似std::
shared_ptr
但不影响对象引用计数的指针。
娱乐界祖师爷
·
2023-11-12 03:35
Effective
Modern
C++
c++
算法
数据结构
c++11 智能指针 (std::
shared_ptr
)(一)
定义于头文件templateclassshared_ptr;(C++11起)std::
shared_ptr
是通过指针保持对象共享所有权的智能指针。多个
shared_ptr
对象可占有同一对象。
繁星璀璨G
·
2023-11-12 03:33
#
智能指针
c++
智能指针
shared_ptr
c++11 智能指针 (std::
shared_ptr
)(四)
定义于头文件templateclassshared_ptr;(C++11起)返回指定类型中的删除器,若其拥有std::get_deletertemplateDeleter*get_deleter(conststd::shared_ptr&p)noexcept;(C++11起)访问p的删除器。若共享指针p占有无cv限定Deleter类型的删除器(例如,若它以接收删除器为参数的构造函数之一创建),
繁星璀璨G
·
2023-11-12 03:33
#
智能指针
c++
智能指针
shared_ptr
c++11 智能指针 (std::
shared_ptr
)(五)
定义于头文件templateclassshared_ptr;(C++11起)创建std::
shared_ptr
的新实例,其存储指针从r的存储指针用转型表达式获得。
繁星璀璨G
·
2023-11-12 03:33
#
智能指针
c++
智能指针
shared_ptr
深入理解Modern C++智能指针std::
shared_ptr
0背景现代C++为了解决内存泄露以及资源回收等问题,引入了智能指针的概念。在日常的C++实践中也是高频使用。本文是在实践过程中,对现代C++中的智能指针进行的一个稍微全面的总结。------------------------------------------------------如果你对C++并发编程感兴趣,想搞懂C++11内存序,或许可以看看C++多线程专栏https://blog.csd
qls315
·
2023-11-12 03:02
C++多线程
c++
开发语言
后端
青少年编程
C++智能指针:auto_ptr、unique_ptr、
shared_ptr
、weak_ptr
一、智能指针介绍智能指针的作用是管理一个指针,因为存在以下这种情况:申请的空间在函数结束时忘记释放,造成内存泄漏。使用智能指针可以很大程度上的避免这个问题,因为智能指针是一个类,当超出了类的实例对象的作用域时,会自动调用对象的析构函数,析构函数会自动释放资源。所以智能指针的作用原理就是在函数结束时自动释放内存空间,不需要手动释放内存空间。智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一
尼古拉斯儿
·
2023-11-12 03:32
C/C++/汇编
c++
指针
C++智能指针的使用
shared_ptr
weak_ptr unique_ptr
shared_ptrC++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率,但是整体来说堆内存的管理是麻烦的,C++11中引入了智能指针的概念,方便管理堆内存。使用普通指针,容易造成堆内存泄露(忘记释放),二次释放,程序发生异常时内存泄露等问题等,使用智能指针能更好的管理堆内存。C++里面的四个智能指针:auto_ptr,uniq
Advsance
·
2023-11-12 03:30
c++
开发语言
后端
C++智能指针的使用:
shared_ptr
、weak_ptr、unique_ptr的使用,使用案例说明。
系列文章目录本章内容:(1)
shared_ptr
、weak_ptr、unique_ptr的介绍(2)单独使用share_ptr造成的内存泄漏(3)
shared_ptr
和weak_ptr的配合使用文章目录系列文章目录前言一
暴躁茹
·
2023-11-12 03:00
C++基本知识
c++
开发语言
算法
软件之禅(五)Input 出场
///输入类classInput;usingInputPtr=std::
shared_ptr
;classInput{public:Input();public://如果对象是一个组合,返回Index指定的第几个子对象
acloud_csu
·
2023-11-11 13:25
c++
面向对象编程
C++ Primer (第五版)-第十二章 动态内存
文章目录序言12.1动态内存和智能指针
shared_ptr
类make_shared函数
shared_ptr
的拷贝和赋值
shared_ptr
自动销毁所管理的对象
shared_ptr
还会自动释放相关联的内存定义
晓纪同学
·
2023-11-09 23:01
C++
Primer笔记
c++
开发语言
C++ 中线程安全的对象回调
如何避免这种竞态条件是C++多线程编程面临的基本问题,可以借助boost的
shared_ptr
和weak_ptr完美解决。这也是实现线程安全的Observer
不可数的爱
·
2023-11-09 12:05
C++
c++11
线程安全
面向对象
迭代器
智能指针
C++11 智能指针之
shared_ptr
0.Overview在实际的C++开发中,我们经常会遇到诸如程序运行中突然崩溃、程序运行所用内存越来越多最终不得不重启等问题,这些问题往往都是内存资源管理不当造成的。比如:有些内存资源已经被释放,但指向它的指针并没有改变指向(成为了野指针),并且后续还在使用;有些内存资源已经被释放,后期又试图再释放一次(重复释放同一块内存会导致程序运行崩溃);没有及时释放不再使用的内存资源,造成内存泄漏,程序占用
MobiusLee
·
2023-11-09 02:18
C++
c++
C++知识点5:C++11
shared_ptr
(智能指针)详解
C++11模板库的头文件中定义的智能指针,即
shared_ptr
模板,就是用来部分解决这个问题的。
shared_ptr
采用引用计数的方式管理所指向的对象。
星辰和大海都需要门票
·
2023-11-09 02:17
C++
c++
[C++11]
shared_ptr
共享智能指针的初始化与使用
includeshared_ptr使用的注意事项:1.不能使用一个原始地址初始化多个共享智能指针2.函数不能返回管理了this的共享智能指针对象3.共享智能指针不能循环引用初始化:1.通过构造函数初始化代码如下:std::
shared_ptr
唐火
·
2023-11-09 01:45
[C++11]
指针
c++
C++11
memory
shared_ptr
C++ 简单实现
shared_ptr
shared_ptr
类型的对象都能够获得指针的所有权并共享该所有权:一旦它们获得所有权,当最后一个所有者释放该所有权时,指针的所有者组就负责删除该所有者。
吃米饭
·
2023-11-09 01:42
C/C++
C++
c++11
智能指针
shared_ptr
C++11
shared_ptr
类型智能指针学习
C++11有三种类型的智能指针,
shared_ptr
、unique_ptr以及weak_ptr;先学习
shared_ptr
类型;
shared_ptr
的定义位于头文件,并位于std命名空间中;T表示指针指向的具体数据类型
bcbobo21cn
·
2023-11-09 01:40
VC++
开发语言
C++
智能指针
shared_ptr
C++(20)——弱引用智能指针weak_ptr
前言在正式介绍weak_ptr之前,我们先来回忆一下shard_ptr的一些知识,我们直到
shared_ptr
是采用引用计数的智能指针,多个
shared_ptr
实例可以指向同一个对象,并维护了一个共享的引用计数器
Dutkig
·
2023-11-08 22:55
c++
c++
objective-c
开发语言
【16】c++11新特性 —>弱引用智能指针weak_ptr(1)
定义std::weak_ptr:弱引用的智能指针,它不共享指针,不能操作资源,是用来监视
shared_ptr
中管理的资源是否存在。
<( ̄︶ ̄)Okay.
·
2023-11-08 22:55
c++11新特性
c++
开发语言
C++弱引用智能指针weak_ptr的用处
与之相对,
shared_ptr
是强引用,只要有一个指向对象的
shared_ptr
存在,该对象就不会析构,直到指向对象的最后一个
shared_ptr
析构或reset()时才会被销毁。
大胡子的艾娃
·
2023-11-08 22:25
C++高级编程
弱指针
weak_ptr
shared_ptr
智能指针
循环引用
C++之弱引用智能指针weak_ptr的验证
目录
shared_ptr
带来的问题:标准库weak_ptr弱引用验证:标准库中weak_ptr交叉引用的验证:
shared_ptr
带来的问题:在交叉引用时,会造成堆上资源无法释放的问题。
一声梧桐
·
2023-11-08 22:23
C++
c++
1024程序员节
[C++11]弱引用智能指针weak_ptr初始化和相关的操作函数
弱引用智能指针std::weak_ptr可以看做是
shared_ptr
的助手,它不管理
shared_ptr
内部的指针。
唐火
·
2023-11-08 22:53
[C++11]
c++
C++11
weak_ptr
智能指针
C++ weak_ptr弱引用智能指针
weak_ptr循环引用共享智能指针的助手弱引用智能指针的实现循环引用问题解决weak_ptr这个指针天生一副小弟的模样,也是在C++11的时候引入的标准库,它的出现完全是为了弥补它老大
shared_ptr
悲伤土豆拌饭
·
2023-11-08 22:52
C++
c++
【17】c++11新特性 —>弱引用智能指针weak_ptr(2)
返回管理this的
shared_ptr
通过wek_ptr返回管理this资源的共享智能指针对象
shared_ptr
。
<( ̄︶ ̄)Okay.
·
2023-11-08 22:51
c++11新特性
c++
算法
开发语言
C++11新特性【智能指针与匿名函数】
目录前言智能指针
shared_ptr
共享的智能指针
shared_ptr
的基本用法使用
shared_ptr
要注意的问题weak_ptr弱引用的智能指针weak_ptr的基本用法weak_ptr返回this
co4chjoe
·
2023-11-08 16:32
c++
开发语言
掌握C++新特性中智能指针的综合指南
C++智能指针一、智能指针存在的意义二、shared_ptr2.1、
shared_ptr
内存模型2.2、
shared_ptr
使用场景2.3、
shared_ptr
的基本使用和常用函数2.3.1、初始化make_shared
Lion Long
·
2023-11-08 16:27
C/C++
c++
智能指针
linux
服务器
shared_ptr
开发语言
unique_ptr
【C++11新特性】智能指针
随后的编程体验中往往需要有更精致的机制,基于程序员的编程体验和BOOST库提供的解决方案,C++摒弃了auto_ptr,新增了三种智能指针:unique_ptr、
shared_ptr
和weak_ptr。
KID__1412_
·
2023-11-08 16:56
C++11新特性
c++
C++11特性-智能指针
智能指针使用需要包含头文件1.共享智能指针shared_ptrshared_ptr是个模板类,可以通过构造函数、reset、
shared_ptr
辅助函数初始化use_
残醉
·
2023-11-07 19:00
#
C++
c++
开发语言
【C++11特性】智能指针
目录缘起头文件auto_ptr可能造成的问题解决方法
shared_ptr
存在以下问题:unique_ptrwake_ptr缘起提出该方法目的:很多时候开辟了空间都忘记释放,为了解决该问题,提出了智能指针方案头文件
域中四大
·
2023-11-07 19:23
技术
日志
c++
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他