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

C++小作业

前言:long long time ago,老大留了点小作业,一直忘了写…偷偷补上

小作业目录

  • unique_ptr vs shared_ptr
    • unique_ptr
    • shared_ptr
  • publisher/subscriber 1?
  • boost::bind
  • std::bind
  • this? _1?
  • TopicContextPtr?std::move

unique_ptr vs shared_ptr

其实是智能指针的应用。避免内存泄漏或者错误引用造成的程序崩溃。

unique_ptr

  • C++14的时候,尽量使用make_unique函数创建unique_ptr实例;

  • std::unique_ptr对象可以作为函数返回值使用,因为函数返回值是个右值,复制给其他变量时,通过移动语义来实现。

  • std::unique_ptr对象可以方便地管理动态内存。但是前提是该对象是建立在栈上的,千万不要使用动态分配的类对象,那么将在堆上,其行为与普通指针变得一样。

  • 使用std::unique_ptr可能犯的两个错误是:

    // 千万不要用同一个资源来初始化多个std::unique_ptr对象
    Resource *res = new Resource;
    std::unique_ptr<Resource> res1(res);
    std::unique_ptr<Resource> res2(res);// 不要混用普通指针与智能指针
    Resource *res = new Resource;
    std::unique_ptr<Resource> res1(res);
    delete res;
    
  • std::unique_ptr默认使用new和delete运算符来分配和释放内存

  • 其他几个常用的方法:

    • release():返回该对象所管理的指针,同时释放其所有权;
    • reset():析构其管理的内存,同时也可以传递进来一个新的指针对象;
    • swap():交换所管理的对象;
    • get():返回对象所管理的指针;
    • get_deleter():返回析构其管理指针的调用函数。

shared_ptr

  • std::shared_ptr与std::unique_ptr的主要区别在于前者是使用引用计数的智能指针。引用计数的智能指针可以跟踪引用同一个真实指针对象的智能指针实例的数目。这意味着,可以有多个std::shared_ptr实例可以指向同一块动态分配的内存,当最后一个引用对象离开其作用域时,才会释放这块内存。
  • 还有一个区别是std::shared_ptr不能用于管理C语言风格的动态数组

publisher/subscriber 1?

boost::bind

引用一篇文章

std::bind

引用一篇文章

this? _1?

TopicContextPtr?std::move

http://www.lryc.cn/news/17461.html

相关文章:

  • Python基础 — lambda匿名函数
  • MongoDB安装和使用过程常见问题
  • AWS攻略——使用中转网关(Transit Gateway)连接同区域(Region)VPC
  • Rouge | 自动文摘及机器翻译评价指标
  • 【Python入门第十五天】Python字典
  • java学习思路
  • MySQL操作数据库-------创建数据库
  • 【十】深入理解redolog,undolog和binlog的底层原理
  • 高频js手写题之实现数组扁平化、深拷贝、总线模式
  • HTML介绍
  • 【C++】string的9道OJ题
  • Odoo丨Odoo框架源码研读三:异常处理与定制化开发
  • Python概述 基础语法 判断 循环
  • 什么是品牌营销?学会正确推广您的业务
  • Golang学习Day1
  • 《设计模式》工厂模式
  • JS - 原型对象、原型链是什么
  • STM32f103 CubeMX封装 led程序
  • 智慧教室系统--温湿度控制系统
  • 只要一直向前定能到达远方,社科院与杜兰大学金融管理硕士项目为你注入动力
  • Java性能-回收算法-Throughout回收算法
  • 立项近7年,索尼产品经理分享PS VR2开发背后的故事
  • Kubernetes 如何通过ingress-nginx实现应用灰度发布?
  • 华为OD机试 - 密室逃生游戏(Java) | 机试题+算法思路+考点+代码解析 【2023】
  • redis的主从复制细节
  • SparkSQL
  • Python|每日一练|栈|数组|字典树|数组|树|广度优先搜索|单选记录:逆波兰表达式求值|回文对|二叉树的层序遍历
  • 慧教室系统--远程控制系统
  • OSCP-课外1(http万能密码、hydra密码暴力破解http、代码审计、Win缓存区溢出)
  • ELK日志分析--Logstash