当前位置: 首页 > news >正文

C++11 shared_ptr类型智能指针学习

智能指针和普通指针的用法类似,但是智能指针可以在适当时机自动释放分配的内存。

C++11有三种类型的智能指针,shared_ptr、unique_ptr 以及 weak_ptr;
先学习shared_ptr类型;

shared_ptr<T> 的定义位于<memory>头文件,并位于 std 命名空间中;
 T 表示指针指向的具体数据类型;

C++11 还提供了 std::make_shared<T> 模板函数,可以用于初始化 shared_ptr 智能指针;

shared_ptr<T>模板类有一些常用成员方法;
其中;get(),获得 shared_ptr 对象内部包含的普通指针;
use_count(), 返回引用计数;
 

#include <memory>
#include <iostream>using namespace std;int main()
{std::shared_ptr<int> p1(new int(9999));std::shared_ptr<string> s1(new string("test string"));cout << p1 << ",  引用计数:" << p1.use_count() << endl;cout << s1 << ",  引用计数:" << s1.use_count() << endl;auto a1 = std::make_shared<int>(9979);co
http://www.lryc.cn/news/223146.html

相关文章:

  • 网络流量分类概述
  • JavaWeb篇_02——服务器简介及Tomcat服务器简介
  • 2311d游戏引擎适配ios
  • 网络唤醒(Wake-on-LAN, WOL)
  • 接口测试框架实战(一) | Requests 与接口请求构造
  • 【C++】详解 void*
  • Linux家目录变成了-bash-4.2$
  • Python和SQLite游标处理多行数据
  • 安全测试之PHP 漏洞全解
  • 【bug-maven】(一)java: 错误: 不支持发行版本 5 (二):java: 错误: 无效的源发行版:15
  • git命令大全(附使用步骤+注释)
  • 【论文阅读】Progressive Spatio-Temporal Prototype Matching for Text-Video Retrieval
  • python --- 类与对象(二)
  • 任正非说:华为以前还出现过可笑的工号文化,看官大官小的指令
  • 用Python舞动数据的魔力:探索数据分析的艺术之路
  • iOS 让界面元素的文字随着语言的更改而变化——本地化文字跟随
  • Xcode15更新内容
  • 【数据集标注制作】视频剪切标注1——类DarkLabel软件
  • 一体化HIS医疗信息管理系统源码:云HIS、云电子病历、云LIS
  • NSSCTF逆向题解
  • 广域网加速的作用:企业为什么需要广域网加速?
  • SQL SERVER Inregration Services-OLE DB、Oracle和ODBC操作
  • 尚硅谷大数据项目《在线教育之实时数仓》笔记006
  • Linux-源码安装go
  • 如何检测小红书账号是否被限流?哪些原因会导致账号被限流?
  • [动态规划] (十三) 简单多状态 LeetCode 740.删除并获得点数
  • 【K-means聚类算法】实现鸢尾花聚类
  • 什么是代理IP池?如何判断IP池优劣?
  • 【面经】讲一下线程池的参数和运行原理
  • 针对图像分类的数据增强方法,离线增强,适合分类,无标签增强