实战c++中的vector系列--vectorlt;unique_ptrlt;gt;gt;初始化(全部权转移)
C++11为我们提供了智能指针,给我们带来了非常多便利的地方。
那么假设把unique_ptr作为vector容器的元素呢?
形式如出一辙:vector<unique_ptr<int> > vec;
可是怎么给vec加入元素呢?
看以下:
#include<iostream>
#include<vector>
#include <memory>
using namespace std;
int main()
{vector<unique_ptr<int>> vec;vec.push_back(1);//错误return 0;
}
那么先定义一个unique_ptr,再进行push_back():
#include<iostream>
#include<vector>
#include <memory>
using namespace std;
int main()
{vector<unique_ptr<int>> vec;unique_ptr<int> sp(new int(126));vec.push_back(sp);//尝试引用已删除的函数return 0;
}
这就是unique智能指针的全部权问题。这个时候就须要使用std::move:
#include<iostream>
#include<vector>
#include <memory>
using namespace std;
int main()
{vector<unique_ptr<int>> vec;unique_ptr<int> sp(new int(126));//vec.push_back(1);vec.push_back(std::move(sp));//尝试引用已删除的函数cout << *vec[0]<< endl; // 输出126//cout << *sp << endl;return 0;
}
可是此时,上面代码的sp编程了什么呢? 使用*取值看一下,结果程序崩溃,原因何在?
就是此时sp已经释放,全部权转移了!
转载于:https://www.cnblogs.com/lytwajue/p/7398748.html
实战c++中的vector系列--vectorlt;unique_ptrlt;gt;gt;初始化(全部权转移)相关推荐
- std中稳定排序算法_实战c++中的vector系列--使用sort算法对vector进行排序(对vector排序、使用稳定的排序std::stable_sort())...
写了挺多关于vector的操作了,正好工作中遇到对vector进行排序的问题,这里就讨论一下. 直接使用sort算法,那就先了解一下: template void sort (RandomAccess ...
- 实战c++中的vector系列--vectorunique_ptr初始化(所有权转移)
C++11为我们提供了智能指针,给我们带来了很多便利的地方. 那么如果把unique_ptr作为vector容器的元素呢? 形式如出一辙:vector<unique_ptr<int> ...
- 实战c++中的string系列--string的替换、查找(一些与路径相关的操作)
今天继续写一些string操作. string给我们提供了很多的方法,但是每在使用的时候,就要费些周折. 场景1: 得到一个std::string full_path = "D:\progr ...
- 手写数字识别中多元分类原理_广告行业中那些趣事系列:从理论到实战BERT知识蒸馏...
导读:本文将介绍在广告行业中自然语言处理和推荐系统实践.本文主要分享从理论到实战知识蒸馏,对知识蒸馏感兴趣的小伙伴可以一起沟通交流. 摘要:本篇主要分享从理论到实战知识蒸馏.首先讲了下为什么要学习知识 ...
- 广告行业中那些趣事系列2:BERT实战NLP文本分类任务(附github源码)
微信公众号:数据拾光者.愿结交更多的小伙伴,一同走人生路. 摘要:上一篇广告中那些趣事系列1:广告统一兴趣建模流程,我们了解了如何为广告主圈人群以及如何刻画用户的兴趣度.要想给用户打标签,我们需要构建 ...
- 在ASP.NET 2.0中操作数据教程系列
在ASP.NET 2.0中操作数据教程系列 Scott Mitchell最近完成了为 www.asp.net 网站撰写的<在ASP.NET 2.0中操作数据 (Working with Data ...
- 《数据分析实战 基于EXCEL和SPSS系列工具的实践》一3.4 数据量太大了怎么办
本节书摘来自华章出版社<数据分析实战 基于EXCEL和SPSS系列工具的实践>一书中的第3章,第3.4节,纪贺元 著,更多章节内容可以访问云栖社区"华章计算机"公众号查 ...
- 《数据分析实战 基于EXCEL和SPSS系列工具的实践》一第2章 数据分析的理论、工具、模型...
本节书摘来自华章出版社<数据分析实战 基于EXCEL和SPSS系列工具的实践>一书中的第2章,第2.1节,纪贺元 著,更多章节内容可以访问云栖社区"华章计算机"公众号查 ...
- 实战Spring Boot 2.0系列(一) - 使用Gradle构建Docker镜像
前言 通常我们使用 Dockerfile 来构建项目的 Docker 镜像.但是也有使用 gradle 在编译项目的时候一起把镜像给 构建 并 上传 的需求.本文将会讲解如何使用 gradle 编写并 ...
最新文章
- PHP China杨格:PHP China 是开发者的“家”
- 用 Java 写一个植物大战僵尸简易版!
- Python 音频数据扩充的技巧
- html5如何传递值,如何将var中的值传递到另一个var
- 【算法与数据结构专场】BitMap算法基本操作代码实现
- java俄文xml解析错误,XML解析出错处理
- SVN版本管理trunk及branch相关merge操作
- xml 中插入html代码
- acegis连接使用方法_铝型材配件间隔连接块的分类与使用方法
- 远程办公软件华为云WeLink高效视频会议指南(下篇:视频会议怎么记录会议纪要?)
- 【Java基础-3】吃透Java IO:字节流、字符流、缓冲流
- 邮件服务器超级用户,Postfix邮件服务器的安装与配置方法
- kotlin使用遇到的坑。。。
- 不用编写程序代码,送你一个爬虫程序批量采集猫眼电影票房数据
- 甲骨文公司总裁Larry Ellison在耶鲁大学的演讲
- 关于结构体,枚举,联合的一些知识
- ChatGPT能够干翻谷歌吗?
- 咸鱼菌玩3D—投影基础
- 信息泄露能算高危漏洞吗
- Hive常用库表操作及知识汇总
热门文章
- 从 OSS 装载数据到 PostgreSQL
- JSP proxool+mysql数据库连接池配置
- C#中 .resx文件
- Apache将整合Google Wave功能
- 内置函数sorted的10个小tips
- GoJS超详细入门(插件使用无非:引包、初始化、配参数(json)、引数据(json)四步)...
- “网站漏洞”成电信诈骗帮凶 专家呼吁进行“立体防护”
- Selenium的简单操作
- swift写的摇骰子程序,开源了
- [LeetCode] Restore IP Addresses 复原IP地址