当前位置: 首页 > 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

相关文章:

C++小作业

前言&#xff1a;long long time ago&#xff0c;老大留了点小作业&#xff0c;一直忘了写…偷偷补上 小作业目录unique_ptr vs shared_ptrunique_ptrshared_ptrpublisher/subscriber 1?boost::bindstd::bindthis? _1&#xff1f;TopicContextPtr?std::moveunique_ptr vs sh…...

Python基础 — lambda匿名函数

1、什么是匿名函数&#xff1f; 匿名函数&#xff0c;顾名思义&#xff0c;就是没有名字的函数&#xff0c;它主要用在那些只使用一次的场景中。如果我们的程序中只需要调用一次某个简单逻辑&#xff0c;把它写成函数还需要先定义、取函数名字等一些列操作&#xff0c;这种场景…...

MongoDB安装和使用过程常见问题

文章目录一、安装过程显示没有相应的权限二、pymongo无法使用&#xff0c;报错一、安装过程显示没有相应的权限 oh我的天&#xff0c;找了网上很多种方法都不行哈哈 不同的电脑对应不同的问题吧~ 我的这个问题是这样解决滴 先直接简述操作路径&#xff0c;不明白的可以看如下图…...

AWS攻略——使用中转网关(Transit Gateway)连接同区域(Region)VPC

文章目录环境准备创建VPC配置中转网关给每个VPC创建Transit Gateway专属挂载子网创建中转网关创建中转网关挂载修改VPC的路由验证创建业务Private子网创建可被外网访问的环境测试子网连通性Public子网到Private子网Private子网到Private子网知识点参考资料在《AWS攻略——Peeri…...

Rouge | 自动文摘及机器翻译评价指标

tag:评价指标,摘要,nlp Rouge(Recall-Oriented Understudy for Gisting Evaluation)&#xff0c;是评估自动文摘以及机器翻译的一组指标。它通过将自动生成的摘要或翻译与一组参考摘要&#xff08;通常是人工生成的&#xff09;进行比较计算&#xff0c;得出相应的分值&#x…...

【Python入门第十五天】Python字典

字典&#xff08;Dictionary&#xff09; 字典是一个无序、可变和有索引的集合。在 Python 中&#xff0c;字典用花括号编写&#xff0c;拥有键和值。 实例 创建并打印字典&#xff1a; thisdict {"brand": "Porsche","model": "911&q…...

java学习思路

基础概念&#xff1a;了解Java的基本概念&#xff0c;如Java虚拟机&#xff08;JVM&#xff09;、Java标准版&#xff08;Java SE&#xff09;、Java企业版&#xff08;Java EE&#xff09;等。了解Java的版本、发展历程以及Java应用场景。可以通过阅读Java官方文档、相关书籍、…...

MySQL操作数据库-------创建数据库

搭建好MySQL环境后&#xff0c;现在我们正式的进入到MySQL的学习当中&#xff0c;这篇文章讲述如何去创建MySQL数据库。 1. 使用CREATE DATABASE创建数据库 语法格式&#xff1a;CREATE DATABASE database_name eg.打开MySQL命令行&#xff0c;查看当前MySQL中存在的数据库 my…...

【十】深入理解redolog,undolog和binlog的底层原理

MySql系列整体栏目 内容链接地址【一】深入理解mysql索引本质https://blog.csdn.net/zhenghuishengq/article/details/121027025【二】深入理解mysql索引优化以及explain关键字https://blog.csdn.net/zhenghuishengq/article/details/124552080【三】深入理解mysql的索引分类&a…...

高频js手写题之实现数组扁平化、深拷贝、总线模式

前言 古人学问无遗力&#xff0c;少壮工夫老始成。纸上得来终觉浅&#xff0c;绝知此事要躬行。看懂一道算法题很快,但我们必须将这道题的思路理清、手写出来。 三道js手写题的思路和代码实现 数组扁平化 演示效果 将[1, [1, 2], [1, [2]]] 变成 [1, 1, 2, 1, 2] 第一种&…...

HTML介绍

文章目录一. HTML介绍二. 创建三. HTML结构四. 常见的标签五. 链接标签六. 图片标签七. 资源路径八. 列表标签九. 表格标签十. 表单标签十一. 表单提交一. HTML介绍 HTML: 超文本标记语言作用: 书写前端页面前端三大技术(三大标准): HTML: 结构标准 (页面中有什么内容)CSS: 样…...

【C++】string的9道OJ题

要么庸俗&#xff0c;要么孤独… 文章目录一、仅仅反转字母二、字符串中的第一个唯一字符&#xff08;计数排序的思想&#xff09;三、字符串相加&#xff08;做好加进位的工作即可&#xff09;四、把字符串转换成整数五、反转字符串中的单词 III六、字符串相乘&#xff08;高…...

Odoo丨Odoo框架源码研读三:异常处理与定制化开发

Odoo丨Odoo框架源码研读三&#xff1a;异常处理与定制化开发 Odoo源码研读的第三期内容&#xff1a;异常处理与定制化开发。 *异常处理* Odoo中的Exception是对Python内置异常做了继承和封装&#xff0c;设定了自己核心的几个Exception。 而对异常的处理和Python内置异常的…...

Python概述 基础语法 判断 循环

Python概述常用快捷键第二章-Python基础语法01-字面量02-注释03-变量04-数据类型05-数据类型转换06-标识符07-运算符08-字符串的三种定义方式09-字符串的拼接10-字符串格式化11-字符串格式化的精度控制 12-字符串格式化-快速写法13-对表达式进行格式化14-字符串格式化练习题讲解…...

什么是品牌营销?学会正确推广您的业务

什么是品牌营销&#xff1f; 品牌营销涉及长期战略规划&#xff0c;以推广整个品牌&#xff0c;而不是营销单个产品或服务。它分享了一个引人入胜的故事&#xff0c;以在潜在客户中产生品牌知名度并建立声誉。 面向消费者的品牌使用品牌智能软件来了解人们对其品牌的看法&#…...

Golang学习Day1

&#x1f60b; 大家好&#xff0c;我是YAy_17&#xff0c;是一枚爱好网安的小白。本人水平有限&#xff0c;欢迎各位大佬指点&#xff0c;欢迎关注 &#x1f601;&#xff0c;一起学习 &#x1f497; &#xff0c;一起进步 ⭐ 。⭐ 此后如竟没有炬火&#xff0c;我便是唯一的光…...

《设计模式》工厂模式

《设计模式》工厂模式 工厂模式又分为简单工厂&#xff08;Simple Factory&#xff09;、工厂方法&#xff08;Factory Method&#xff09;和抽象工厂&#xff08;Abstract Factory&#xff09;都是常用的创建型设计模式&#xff0c;它们的主要区别如下&#xff1a; 简单工厂…...

JS - 原型对象、原型链是什么

一 阅读掘金 https://juejin.cn/post/7007416743215759373 https://juejin.cn/post/7007416743215759373 二 阅读掘金小册原型知识点 原型 涉及面试题&#xff1a;如何理解原型&#xff1f;如何理解原型链&#xff1f; 当我们创建一个对象时 let obj { age: 25 }&#xff0…...

STM32f103 CubeMX封装 led程序

本文代码使用 HAL 库。 文章目录前言一、LED 原理图二、CubeMX创建工程三、LED 相关函数1. 输出电平函数&#xff1a;2. 延时函数&#xff1a;3. 翻转电平函数&#xff1a;四、详细代码实验现象 &#xff1a;总结代码 源码&#xff1a;前言 从这篇文章开始&#xff0c;我们讲解…...

智慧教室系统--温湿度控制系统

随着科技的不断进步&#xff0c;智能化已经成为了各个行业的发展趋势&#xff0c;智慧教室作为未来教育的主流趋势之一&#xff0c;也将受益于这一趋势。而智慧教室中的温湿度控制系统是其中的重要组成部分&#xff0c;为了创造一个舒适、健康、安全的教学环境&#xff0c;智慧…...

用C语言解决‘换硬币’问题?我来教你如何调试和验证你的循环逻辑

用C语言解决‘换硬币’问题&#xff1f;我来教你如何调试和验证你的循环逻辑 当你第一次面对"换硬币"这类组合问题时&#xff0c;那种既兴奋又困惑的感觉我至今记忆犹新。作为C语言初学者&#xff0c;理解多重循环的运作机制就像在迷宫中寻找出口——每次你以为找到了…...

从多路复用到三维光阵:Arduino驱动8x8x8 LED立方体全解析

1. 项目概述&#xff1a;用Arduino点亮一个三维世界几年前&#xff0c;我第一次在创客展上看到一个8x8x8的LED立方体&#xff0c;那种由数百个光点构成的、在三维空间中流动的动画效果&#xff0c;瞬间就把我吸引住了。它不像普通的平面LED屏&#xff0c;而是真正有“深度”的光…...

从入门到实践:EEG公开数据集分类与应用场景全解析

1. EEG公开数据集入门指南刚接触脑电信号分析的研究者&#xff0c;常常会被一个问题困扰&#xff1a;"我应该从哪里获取可靠的EEG数据&#xff1f;"作为一个在这个领域摸爬滚打多年的研究者&#xff0c;我完全理解这种困惑。记得我第一次接触EEG研究时&#xff0c;光…...

skills CANN开源社区贡献技能包开发指南

前言 开源社区的健康运转&#xff0c;不仅依赖核心代码的贡献&#xff0c;还需要降低贡献门槛、提供清晰的指南和自动化工具。skills仓库是CANN开源社区的"贡献技能包"&#xff0c;提供了一系列辅助脚本、代码模板、CI检查和文档生成工具&#xff0c;帮助新手快速上…...

AI圈内火热的Agent、MCP、Skill、CLI是啥?用装修房子讲透,看完秒懂

本文用装修房子的比喻&#xff0c;详细解释了AI领域的四个核心概念&#xff1a;Agent如同会自主规划任务的私人助理&#xff1b;MCP是AI与外部工具数据的统一接口&#xff0c;类似USB-C&#xff1b;Skill是指导AI按标准操作执行的手册&#xff1b;CLI则是不依赖图形界面的命令行…...

差分隐私GDP机制紧密度量化:从隐私剖面到∆度量的实践指南

1. 差分隐私GDP机制&#xff1a;从理论到实践&#xff0c;如何量化隐私保护紧密度在差分隐私&#xff08;Differential Privacy, DP&#xff09;的实际部署中&#xff0c;尤其是在机器学习的隐私保护训练&#xff08;如DP-SGD&#xff09;场景里&#xff0c;我们常常面临一个核…...

学习日志(三)【php语法学习,iscc校赛wp】

1. 任务 1.1.1.1.1.1. 知识部分 rce看【之前的笔记&#xff1f;】php的知识点学习继续jwt token好像是比赛的题目考察内容&#xff0c;我看看php伪协议 1.1.1.1.1.2. 题目 参加iscc比赛【五一】rce题目 1.1.1.1.1.3. 环境配置 把vscode搞好&#xff0c;上学期没有把Php配…...

机器学习赋能矩方法:破解稀薄气体强非平衡流动模拟难题

1. 项目概述&#xff1a;当矩方法遇见机器学习在计算流体力学领域&#xff0c;模拟稀薄气体动力学和强非平衡流动&#xff0c;一直是个让工程师和科学家们头疼的“硬骨头”。想象一下&#xff0c;你正在设计一架高超音速飞行器&#xff0c;当它以数倍音速在大气层边缘飞行时&am…...

Win11Debloat:Windows系统精简与隐私保护的专业解决方案

Win11Debloat&#xff1a;Windows系统精简与隐私保护的专业解决方案 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …...

收藏干货|2026年程序员转型大模型指南,8个高薪岗位小白也能入局

分享一则身边真实职场经历&#xff0c;想必能戳中当下不少陷入职业迷茫的开发从业者。 同窗老友深耕Java后端开发整整六年&#xff0c;常年扎根业务开发模块&#xff0c;算得上行业内经验老道的技术老手。可从去年年初开始&#xff0c;他的职业焦虑感愈发强烈。传统业务开发同质…...