首页 > 编程语言 >Boost C++ 库 | 智能指针(共享指针、共享数组、弱指针、介入式指针、指针容器)入门

Boost C++ 库 | 智能指针(共享指针、共享数组、弱指针、介入式指针、指针容器)入门

时间:2024-10-10 20:47:59浏览次数:11  
标签:C++ 智能 shared 共享 boost ptr 指针

点击上方"蓝字"关注我们

01、共享指针

>>>

这是使用率最高的智能指针,但是 C++ 标准的第一版中缺少这种指针。它已经作为技术报告1(TR 1)的一部分被添加到标准里了。如果开发环境支持的话,可以使用 memory 中定义的 std::shared_ptr。在 Boost C++ 库里,这个智能指针命名为 boost::shared_ptr,定义在 boost/shared_ptr.hpp 里。

智能指针 boost::shared_ptr 基本上类似于 boost::scoped_ptr。关键不同之处在于 boost::shared_ptr 不一定要独占一个对象。它可以和其他 boost::shared_ptr 类型的智能指针共享所有权。在这种情况下,当引用对象的最后一个智能指针销毁后,对象才会被释放。

因为所有权可以在 boost::shared_ptr 之间共享,任何一个共享指针都可以被复制,这跟 boost::scoped_ptr 是不同的。这样就可以在标准容器里存储智能指针了——你不能在标准容器中存储 std::auto_ptr,因为它们在拷贝的时

标签:C++,智能,shared,共享,boost,ptr,指针
From: https://blog.csdn.net/m0_45463480/article/details/142832023

相关文章

  • 42 C 语言 typedef:为基本数据类型、数组、指针、结构体、共用体起别名
    目录1 typedef介绍2 为某个基本类型起别名2.1为int类型起别名Integer2.2为unsignedchar类型起别名Byte2.3为基本类型一次起多个别名3 为结构体、共用体起别名3.1为结构体起别名3.1.1分开定义结构体和别名3.1.2与结构体定义一起使用typedef3.1.3为......
  • 实验1 现代C++基础编程
    任务1:源代码task1.cpp1#include<iostream>2#include<string>3#include<vector>4#include<algorithm>56usingnamespacestd;78template<typenameT>9voidoutput(constT&c);1011voidtest1();12void......
  • 指针 + 数组 较为复杂凌乱的 【笔试题】
    2024-10-10-笔记-25作者(Author):郑龙浩/仟濹(CSDN账号名)【指针+数组】的各种题型(笔试题)来自于鹏哥的网课,我做一下笔记119.【C语言进阶】笔试题详解(4)_哔哩哔哩_bilibili①题#include<stdio.h>intmain(){inta[5]={1,2,3,4,5};......
  • 实验1 现代c++编程初体验
    任务1:task1.cpp1//现代C++标准库、算法库体验2//本例用到以下内容:3//1.字符串string,动态数组容器类vector、迭代器4//2.算法库:反转元素次序、旋转元素5//3.函数模板、const引用作为形参67#include<iostream>8#include<string>......
  • 实验1 C++
    #include<iostream>#include<string>#include<vector>#include<algorithm>usingnamespacestd;template<typenameT>voidoutput(constT&c);voidtest1();voidtest2();voidtest3();intmain(){cout<<&q......
  • 实验一 现代C++编程初体验
    实验结论:任务一:task1.cpp1//现代C++标准库、算法库体验2//本例用到以下内容:3//1.字符串string,动态数组容器类vector、迭代器4//2.算法库:反转元素次序、旋转元素5//3.函数模板、const引用作为形参67#include<iostream>8#include<......
  • C++常用设计模式详解
    前言:本文详细解释几种常用的C++设计模式,都是平时项目中用的比较多的。本文针对每种设计模式都给出了示例,让你跟着代码彻底搞懂设计模式。Tips:如果是准备面试,不需要知道所有的设计模式,要深入理解下面几种常用即可,因为面试官会先问你了解哪些设计模式,然后从你了解的里面挑一......
  • c++(自创游戏6)
    1.自创游戏6作者在家里看见了一本书,书名叫:小学生趣味编程,大人也可以看,作者在上面找到了,if,下面是作者自己创作的小游戏,想玩的复制一下就行了,上代码。#include<bits/stdc++.h>#include<windows.h>usingnamespacestd;intmain(){inta;cout<<"请开始游玩if游戏"......
  • 实验1 现代C++编程初体验
    任务1://现代C++标准库、算法库体验//本例用到以下内容://1.字符串string,动态数组容器类vector、迭代器//2.算法库:反转元素次序、旋转元素//3.函数模板、const引用作为形参#include<iostream>#include<string>#include<vector>#include<algorithm>usin......
  • c++初始化列表构造
      #include<iostream>#include<string>usingnamespacestd;classCar{public: stringbrand; intyear; stringtype; //无参构造函数 Car(){ cout<<"无参构造函数"<<endl; } //带一个参数的构造函数 Car(stringb) { cout<<&qu......