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
#智能指针
C++ std::unique_ptr 详解
概述std::unique_ptr是C++11中引入的
智能指针
,用于管理动态分配的对象。它提供了独占所有权的能力,确保资源在不再需要时自动释放。
半笺寄怀
·
2024-01-07 04:22
修炼C++
c++
开发语言
C++——
智能指针
和RAII
该文章代码均在gitee中开源C++
智能指针
hpphttps://gitee.com/Ehundred/cpp-knowledge-points/tree/master/%E6%99%BA%E8%83%
鹅一百
·
2024-01-06 17:12
C++
c++
开发语言
C++,
智能指针
详解(面试)
智能指针
C++中的
智能指针
是一种用于管理动态分配的内存资源的指针类模板。它们提供了自动内存管理,帮助避免内存泄漏和悬空指针的问题,同时减少了手动释放内存的负担。
奇睿海
·
2024-01-06 14:10
面试
C++
c++
面试
C++学习笔记(二十五):c++
智能指针
智能指针
不需要自己去delete一个new的对象,会自动释放对应的内存空间。unique_ptr:作用域指针,超出作用域后自动释放分配的内存区域。
pcop
·
2024-01-06 12:14
c++
学习
笔记
[C++] Boost
智能指针
——boost::shared_ptr(使用及原理分析)
简介boost::shared_ptr是可以共享所有权的指针。如果有多个shared_ptr共同管理同一个对象时,只有这些shared_ptr全部与该对象脱离关系之后,被管理的对象才会被释放。通过下面这个例子先了解下shared_ptr的基本用法:1#include2#include3#include45usingnamespacestd;67classBook8{9private:10strin
dxmcu
·
2024-01-05 21:35
boost
C++
智能指针
1.
智能指针
1.1知识点1.1.1为什么要提出
智能指针
?
进击的菜鸟子
·
2024-01-05 19:33
C++
c++
算法
c语言
linux
c++string 加引号_C++|引用计数与shared_ptr
智能指针
(以实现String类为例)
C++中,动态内存的管理是通过一对运算符来完成的,new用于申请内存空间,调用对象构造函数初始化对象并返回指向该对象的指针。delete接收一个动态对象的指针,调用对象的析构函数销毁对象,释放与之关联的内存空间。动态内存的管理在实际操作中并非易事,因为确保在正确的时间释放内存是极其困难的,有时往往会忘记释放内存而产生内存泄露;有时在上游指针引用内存的情况下释放了内存,就会产生非法的野指针(悬挂指针
weixin_39624429
·
2024-01-05 16:58
c++string
加引号
c++
智能指针
unique_ptr
使用指针时很容易出现内存泄漏,便引入了
智能指针
,c++11中主要有三类std::unique_ptr:独占资源指针,同一时刻只能有一个指针指向同一个对象std::shared_ptr:共享资源指针,同一时刻可以有多个指针指向同一个对象
Tang Paofan
·
2024-01-05 07:57
C++/C
#智能指针
c++
笔记
C++学习(五)类和动态内存分配
(new和delete)VS(
智能指针
)对象的生命周期:全局对象:程序启动时分配,程序结束时销毁局部自动对象:进入块时分配,离开块时销毁局部static对象:第一次使用时分配,程序结束时销毁c++中使用
Fighting++++
·
2024-01-05 02:47
C++
C++
智能指针
的延迟报错问题
最近工作上发现一个比较复杂的代码出现随机报错问题,话不多说,直接debug模式开启ASAN机制构建程序,set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS}-O0-g-fstack-protector-fsanitize=address-fno-omit-frame-pointer")很快能定位到报错的行,调用某个对象的成员函数的内部报错,说某个成员锁对象有问题,非法读取内
haithink
·
2024-01-04 20:51
C++
c++
开发语言
C++垃圾回收机制
您可以使用使用RAII的
智能指针
(如果指针允许共享访问,则使用引用计数)来确定何时删除对象。一个好的
智能指针
库是Boost的
智能指针
。绝大多数情况下的
智能指针
可以取代原始指针。
简单的绿竹
·
2024-01-04 10:10
Java
c++
java
jvm
Ceph源码分析-std::unique_ptr<rgw::sal::RGWObject::WriteOp> obj_op = head_obj->get_write_op(&obj_ctx);
std::unique_ptrobj_op=head_obj->get_write_op(&obj_ctx);这行代码是C++代码,涉及到
智能指针
和某个对象或库的特定操作。
瓦哥架构实战
·
2024-01-04 09:14
Ceph源码分析
ceph
算法
boost
智能指针
1概述1998年修订的第一版C++标准只提供了一种
智能指针
:std::auto_ptr。它基本上就像是个普通的指针:通过地址来访问一个动态分配的对象。
lucky1_1star
·
2024-01-04 05:49
c++
c++ std::enable_shared_from_this 的作用
比如说在类的内部直接使用std::shared_ptr(this),就会导致
智能指针
失效。常见的场景:通过std::bind生成functor
sweetorange
·
2024-01-04 04:58
fa1
智能指针
Dev
1.为什么使用
智能指针
?因为之前有内存泄露的问题,所以转向
智能指针
;
智能指针
是一个解决问题的神器,尤其是一些涉及多线程的场景下。本文将介绍
智能指针
可以解决的问题,用法及最佳实践。
曼城英泽
·
2024-01-03 08:52
f6cPlus
c++
开发语言
a2面试总结--c++新特性
纳磁生物面试总结:面试总结:1.
智能指针
在多线程使用中安全的吗?
曼城英泽
·
2024-01-03 08:51
c++
面试
开发语言
智能指针
之shared_ptr初始化,引用计数,常用操作和自定义删除器等等03
一share_ptr1share_ptr基础1)共享所有权,不是被一个shared_ptr拥有,而是被多个shared_ptr之间相互协作。shared有额外开销。2)工作原理:利用引用计数的方法管理一片内存,每增加一个shared_ptr,count数加1,同理,每减少一个shared_ptr,count减1;这种引用也称为强引用。3)最后一个指向该内存对象的shared_ptr在什么情况下,会
Mango酱
·
2024-01-02 07:02
C++新特性相关
c++
指针
shared_ptr的学习
内容摘自:《深入应用C++11代码优化与工程级应用》
智能指针
是存储指向动态分配(堆)对象指针的类。用于生存期控制。确保在离开指针所在作用域时,自
lpl轻舟已过万重山
·
2024-01-02 07:00
c++
算法
开发语言
条款13:以对象管理资源
文章目录没有管理的情况解决办法之unique_ptr
智能指针
解决办法之shared_ptr
智能指针
总结没有管理的情况 资源是指一旦你使用完它,就需要返回系统的东西。
ccloud11
·
2024-01-01 23:30
Effective
C++
c++
c++
Modern C++ for C程序员 第2部分
文章目录ModernC++forC程序员第2部分命名空间类资源获取即初始化(RAII)
智能指针
线程,原子操作锁错误处理总结这是berthubert的系列文章,旨在帮助c代码人快速了解c++实用的新特性。
楚谷雨
·
2024-01-01 20:47
c++
c语言
Modern C++ for C 程序员 第5部分
文章目录ModernC++forC程序员第5部分内存管理复制省略或返回值优化
智能指针
初识:std::unique_ptrstd::move
智能指针
和多态性placementnew其他的一些建议总结这是berthubert
楚谷雨
·
2024-01-01 20:47
c++
c语言
java
【Linux】线程池设计/单例模式/STL、
智能指针
与线程安全/读者写者问题
文章目录一、线程池二、线程安全的单例模式1.单例模式的特点2.饿汉实现方式和懒汉实现方式3.懒汉方式实现单例模式(线程安全版本)三、STL,
智能指针
和线程安全四、常见的各种锁五、读者写者问题1.读写锁2
椿融雪
·
2024-01-01 18:55
Linux系统编程
linux
单例模式
c++
线程池
STL
智能指针与线程安全
读者写者问题
C++学习七:异常处理、转换函数、
智能指针
一.异常处理1.核心思想让函数的设计者去检查错误,检查到错误时抛出异常,而函数的使用者捕获异常并处理异常2.C++的异常处理机制有3部分组成:try(检查错误)->throw(抛出异常)->catch(捕获异常)3.异常语法形式try{//检查错误if(错误)throw异常}catch(异常1){处理异常}catch(异常2){处理异常}eg:intdivior(intx,inty) {
西装没钱买
·
2024-01-01 01:16
c++
学习
C++入门13 -- 类型转换,新特性,异常,
智能指针
类型转换C语言类型转换:(type)expressionexpression(type)#includeusingnamespace::std;intmain(intargc,constchar*argv[]){inta=10;doubled1=(double)a;doubled2=double(a);return0;}C++语言类型转换:xx_cast(expression)const_cast
YanZi_33
·
2023-12-31 13:33
C++11 特性
目录C++11简介{}初始化std::initializer_listautodecltypenullptr范围for循环C++98的循环方式:C++11的范围遍历:
智能指针
1.为什么需要
智能指针
?
Obto-
·
2023-12-31 12:39
c++
c++
c语言
C++面向对象(OOP)编程-C++11新特性详解
引入的auto,
智能指针
、线程机制都使得C++语言的灵活性、安全性、并发性有了很大的提升。本文会比较详细的介绍C++11引入的新特性,以及各自引入的原因和基本的用法。
发狂的小花
·
2023-12-31 07:48
C/C++精进之路
c++
开发语言
C++11新特性
并发
泛型编程
2023令我惊叹的C++代码用法
下面将介绍五个C++高级代码知识,包括虚函数、模板、
智能指针
、多线程和RAII。同时,我会展示一个最令自己惊叹的C++代码,并解释它的用途和用法。
VNGRY
·
2023-12-31 05:20
c++
开发语言
02
智能指针
->
智能指针
本质上就是RAII资源管理功能的自然展现。1.模板化和易用性:能够包装任意类型的指针。
半盏清茶_6300
·
2023-12-31 01:55
Qt基础之四十三:Qt
智能指针
(QPointer、QSharedPointer、QWeakPointer和QScopedPointer)
一.QPointerQPointer是一个模板类,用于指向QObject或其派生类对象。当QPointer指向的对象销毁时,它会被自动设置为nullptr(在QObject析构时),这和普通C++指针是不同的(普通的C++指针delete后会变为“悬空指针”,需要手动设置为nullptr)。QPointer的使用场景:QPointer指向的对象可能在其他地方也用到了,那么在使用这个QPointer
草上爬
·
2023-12-30 05:28
Qt那些事儿
qt
QPointer
智能指针
QSharedPointer
QWeakPointer
QScopedPointer
C++中dynamic_cast和dynamic_pointer_cast
其用途跟非
智能指针
的cast意思相同:stat
Folllll
·
2023-12-30 01:14
C++
多态
指针
c++
boost
【QT】qt的
智能指针
智能指针
C++标准库中的三种
智能指针
:std::shared_ptr:使用引用计数,每一个shared_ptr的拷贝都指向相同的内存,每次拷贝都会触发引用计数+1,每次生命周期结束析构的时候引用计数-1
我不是程序猿儿
·
2023-12-30 00:04
QT之路
qt
开发语言
C++
智能指针
的引用计数原理以及 mutable 关键字的使用场景
1和2可以不看1、const成员函数2、使用mutable的场景举例3、侵入式引用计数mutable用于修饰类的成员变量,表示该成员变量可以在被标记为const的成员函数内修改。1、const成员函数在C++中,将成员函数标记为const有两个主要目的:约定和安全性:使用const关键字是为了表达一个承诺,即该成员函数不会修改对象的状态,这增加了对于程序员来说的可读性。在const成员函数内部,编
宗浩多捞
·
2023-12-29 19:59
C++
c++
开发语言
算法
6. C++的引用与指针
摘要:本文首先介绍C++的内存模型和变量周期作为知识背景,接着对C++中的引用和指针(原始指针和
智能指针
)进行介绍。1.对象生命周期什么是对象生命周期?
liu_xfx
·
2023-12-29 07:27
系统C++学习
c++
c++ 技巧
智能指针
指针管理的困难:1.资源释放了,指针没有置空(1)野指针指针没有置空,后续接着使用。
不负长风
·
2023-12-29 06:35
c
c++
开发语言
【C++】
智能指针
一、为什么需要
智能指针
?
智能指针
就是帮我们C++程序员管理动态分配的内存的,它会帮助我们自动释放new出来的内存,从而避免内存泄漏。
炫酷的伊莉娜
·
2023-12-26 23:58
C++
c++
智能指针
内存泄漏
C++11
RAII
boost
智能指针的原理
Rust入坑指南:
智能指针
在了解了Rust中的所有权、所有权借用、生命周期这些概念后,相信各位坑友对Rust已经有了比较深刻的认识了,今天又是一个连环坑,我们一起来把
智能指针
刨出来,一探究竟。
Jackeyzhe
·
2023-12-26 22:10
异常和
智能指针
智能指针
的认识
智能指针
是一种C++语言中用于管理动态内存的工具,它们可以自动管理内存的分配和释放,从而避免内存泄漏和悬空指针等问题。
高居沉
·
2023-12-26 09:28
C++基础知识
算法
智能指针
异常
详解—C++[
智能指针
]
目录一、为什么需要
智能指针
?
努力学习的小赵同志
·
2023-12-25 20:53
C++
c++
算法
数据结构
c++11--强枚举类型,
智能指针
1.枚举1.1.c++11之前的枚举实例#includeenumType{ONE,TWO,THREE};intmain(){printf("sizeof_%d,ONE_%d\n",sizeof(ONE),ONE);return0;}具备以下特点:(1).枚举值直接在父作用域可见。(2).枚举底层类型由编译器结合枚举成员数值自行决定。(3).枚举值支持隐式转换为整数类型。称上述枚举为弱类型枚举。1.
raindayinrain
·
2023-12-25 10:29
1.3.语言-C++11
强枚举类型
智能指针
c++指针运算符重载-
智能指针
手动实现(某马)
#define_CRT_SECURE_NO_WARNINGS#includeusingnamespacestd;classPerson{public:Person(intage){coutm_Age=age;}voidshowAge(){coutm_Agem_person=person;}//重载->运算符Person*operator->(){returnthis->m_person;}//重载
无涯之涯
·
2023-12-24 21:39
c++11特新:弱引用
智能指针
弱引用
智能指针
std::weak_ptr可以看做是shared_ptr的助手,它不管理shared_ptr内部的指针。
想不出来_6
·
2023-12-23 23:13
c++
开发语言
笔记
C++11特性:共享
智能指针
解决这个问题最有效的方法是使用
智能指针
(smartpointer)。
想不出来_6
·
2023-12-23 23:42
c++
开发语言
笔记
c++11特性:独占的
智能指针
解决这个问题最有效的方法是使用
智能指针
(smartpointer)。
想不出来_6
·
2023-12-23 23:12
c++
开发语言
笔记
RAII
智能指针
借此,我们实际上把管理一份资源的责任托管给一个对象好处:①.不需要显式地释放资源②.采用这种方式,对象所需的资源在其生命周期内始终有效二.
智能指针
auto_ptr
C1238888
·
2023-12-23 16:45
开发语言
c++
算法
C++——C++11(2)
我在我的C++异常博客中曾提到,对于异常的处理经常会导致内存泄漏问题,一种解决方法是异常的重新抛出,还有一种就是RAII,那么RAII的思想体现在C++中就是
智能指针
,所以接下来我将简单的介绍,什么是RAII
歪~~
·
2023-12-23 06:03
c++
开发语言
嵌入式代码优化技巧
内存管理技巧1.C/C++工程应尽量避免深拷贝,尽量用浅拷贝(指针或者引用),如果指针需要频繁拷贝,用
智能指针
是一种不错的选择2.启用内存池管理线程的内存开销,事先在堆里边分配好,然后快速使用避免复杂的浮点运算
IOT那些事儿
·
2023-12-22 14:27
嵌入式
物联网
软件工程
c++
【C++】C++11新特性
C++11新特性目录C++11新特性1.Auto关键字2.basedfor3.列表初始化4.
智能指针
5.移动语义6.Lambda7.多线程支持8.强制类型转换9.右值引用10.constexpr1.Auto
爬树攻城狮
·
2023-12-22 14:13
c++
java
开发语言
C/C++常见面试题(三)
static关键词的作用4、volatile关键字的作用5、extern关键字6、引用和指针的区别7、malloc的用法和注意点8、C和C++的区别9、C语言的编译过程10、重载、重写、隐藏的区别11、
智能指针
发狂的小花
·
2023-12-21 06:19
C/C++面试整理
c语言
c++
嵌入式
面试
C++面向对象(OOP)编程-四种类型转换
目录1C/C++类型转换2四种强制类型转换2.1static_cast2.2reinterpret_cast2.3const_cast2.4dynamic_cast3RTTI4面试题5
智能指针
的四种强制转换
发狂的小花
·
2023-12-21 06:18
C/C++精进之路
c++
开发语言
强制类型转换
【c++】C++job知识1——第一章 编译内存相关
1.11
智能指针
有哪几种?
智能指针
的实现原理?1.12一个unique_ptr怎么赋值给另一个unique_ptr对象?1.13使
超级无敌陈大佬的跟班
·
2023-12-21 05:06
c++知识
面试
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
其他