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;初始化(全部权转移)相关推荐

  1. std中稳定排序算法_实战c++中的vector系列--使用sort算法对vector进行排序(对vector排序、使用稳定的排序std::stable_sort())...

    写了挺多关于vector的操作了,正好工作中遇到对vector进行排序的问题,这里就讨论一下. 直接使用sort算法,那就先了解一下: template void sort (RandomAccess ...

  2. 实战c++中的vector系列--vectorunique_ptr初始化(所有权转移)

    C++11为我们提供了智能指针,给我们带来了很多便利的地方. 那么如果把unique_ptr作为vector容器的元素呢? 形式如出一辙:vector<unique_ptr<int> ...

  3. 实战c++中的string系列--string的替换、查找(一些与路径相关的操作)

    今天继续写一些string操作. string给我们提供了很多的方法,但是每在使用的时候,就要费些周折. 场景1: 得到一个std::string full_path = "D:\progr ...

  4. 手写数字识别中多元分类原理_广告行业中那些趣事系列:从理论到实战BERT知识蒸馏...

    导读:本文将介绍在广告行业中自然语言处理和推荐系统实践.本文主要分享从理论到实战知识蒸馏,对知识蒸馏感兴趣的小伙伴可以一起沟通交流. 摘要:本篇主要分享从理论到实战知识蒸馏.首先讲了下为什么要学习知识 ...

  5. 广告行业中那些趣事系列2:BERT实战NLP文本分类任务(附github源码)

    微信公众号:数据拾光者.愿结交更多的小伙伴,一同走人生路. 摘要:上一篇广告中那些趣事系列1:广告统一兴趣建模流程,我们了解了如何为广告主圈人群以及如何刻画用户的兴趣度.要想给用户打标签,我们需要构建 ...

  6. 在ASP.NET 2.0中操作数据教程系列

    在ASP.NET 2.0中操作数据教程系列 Scott Mitchell最近完成了为 www.asp.net 网站撰写的<在ASP.NET 2.0中操作数据 (Working with Data ...

  7. 《数据分析实战 基于EXCEL和SPSS系列工具的实践》一3.4 数据量太大了怎么办

    本节书摘来自华章出版社<数据分析实战 基于EXCEL和SPSS系列工具的实践>一书中的第3章,第3.4节,纪贺元 著,更多章节内容可以访问云栖社区"华章计算机"公众号查 ...

  8. 《数据分析实战 基于EXCEL和SPSS系列工具的实践》一第2章 数据分析的理论、工具、模型...

    本节书摘来自华章出版社<数据分析实战 基于EXCEL和SPSS系列工具的实践>一书中的第2章,第2.1节,纪贺元 著,更多章节内容可以访问云栖社区"华章计算机"公众号查 ...

  9. 实战Spring Boot 2.0系列(一) - 使用Gradle构建Docker镜像

    前言 通常我们使用 Dockerfile 来构建项目的 Docker 镜像.但是也有使用 gradle 在编译项目的时候一起把镜像给 构建 并 上传 的需求.本文将会讲解如何使用 gradle 编写并 ...

最新文章

  1. PHP China杨格:PHP China 是开发者的“家”
  2. 用 Java 写一个植物大战僵尸简易版!
  3. Python 音频数据扩充的技巧
  4. html5如何传递值,如何将var中的值传递到另一个var
  5. 【算法与数据结构专场】BitMap算法基本操作代码实现
  6. java俄文xml解析错误,XML解析出错处理
  7. SVN版本管理trunk及branch相关merge操作
  8. xml 中插入html代码
  9. acegis连接使用方法_铝型材配件间隔连接块的分类与使用方法
  10. 远程办公软件华为云WeLink高效视频会议指南(下篇:视频会议怎么记录会议纪要?)
  11. 【Java基础-3】吃透Java IO:字节流、字符流、缓冲流
  12. 邮件服务器超级用户,Postfix邮件服务器的安装与配置方法
  13. kotlin使用遇到的坑。。。
  14. 不用编写程序代码,送你一个爬虫程序批量采集猫眼电影票房数据
  15. 甲骨文公司总裁Larry Ellison在耶鲁大学的演讲
  16. 关于结构体,枚举,联合的一些知识
  17. ChatGPT能够干翻谷歌吗?
  18. 咸鱼菌玩3D—投影基础
  19. 信息泄露能算高危漏洞吗
  20. Hive常用库表操作及知识汇总

热门文章

  1. 从 OSS 装载数据到 PostgreSQL
  2. JSP proxool+mysql数据库连接池配置
  3. C#中 .resx文件
  4. Apache将整合Google Wave功能
  5. 内置函数sorted的10个小tips
  6. GoJS超详细入门(插件使用无非:引包、初始化、配参数(json)、引数据(json)四步)...
  7. “网站漏洞”成电信诈骗帮凶 专家呼吁进行“立体防护”
  8. Selenium的简单操作
  9. swift写的摇骰子程序,开源了
  10. [LeetCode] Restore IP Addresses 复原IP地址