std::auto_ptr 到 std::unique_ptr

2023-11-30

随着新标准的到来(以及某些编译器中已经可用的部分),新类型std::unique_ptr应该是替代品std::auto_ptr.

它们的用法是否完全重叠(这样我可以在我的代码上进行全局查找/替换(不是我会这样做,但如果我这样做))或者我应该意识到一些在阅读文档时不明显的差异?

另外,如果它是直接替换,为什么要给它一个新名称而不是仅仅改进std::auto_ptr?


您无法进行全局查找/替换,因为您可以复制auto_ptr(后果已知),但是unique_ptr只能移动。任何看起来像的东西

std::auto_ptr<int> p(new int);
std::auto_ptr<int> p2 = p; 

至少必须变成这样

std::unique_ptr<int> p(new int);
std::unique_ptr<int> p2 = std::move(p);

至于其他的区别,unique_ptr可以正确处理数组(它会调用delete[], while auto_ptr将尝试致电delete.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

std::auto_ptr 到 std::unique_ptr 的相关文章

  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • STL 迭代器:前缀增量更快? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中的预增量比后增量快 正确吗 如果是 为什么呢 https stackoverflow com questions 2020184 preincrement faster than postinc
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲

随机推荐

  • 使用 crontab/cron 安排 python 3.6 脚本

    我只是在我的 Centos 开发服务器上设置一个 crontab job 在我的 crontab 中 我有以下内容 忽略时间设置 这是在 UTC 服务器时间 15 32 左右添加的 只是为了获得下一次计划运行 34 15 cd welcom
  • 变量从 PHP 传递到 Smarty 和 Javascript

    我在 php 中有一个对象 它像 smarty gt assign o o 一样传递给 Smarty 然后我需要在 JavaScript 中访问该对象及其属性 在 tpl 中没有任何 javascript 的情况下 你如何做到这一点 我希望
  • 如何在一个QTableView中显示多个QSqlTableModel的内容?

    我有一个MySql表 我们称之为x CREATE TABLE x Id int unsigned NOT NULL PRIMARY KEY AUTO INCREMENT A int unsigned NOT NULL B int FOREI
  • python中变量相乘时如何添加空格

    这是我的代码 print Type in another set of words x input print Now type in how many times you want it to appear WHOLE NUMBERS O
  • 如何通过 JavaScript 更改字体大小?

    该代码不起作用 var span document getElementById span span style fontsize 25px span innerHTML String JavaScript 区分大小写 所以 如果你想改变字
  • margin、padding、border 全部为零后还有空间吗?

    我已将边距 填充和边框设置为零 但 Firefox 和 Chrome 中的画布和 div 周围仍然有空间 显然 我不明白如何在 HTML 中紧贴元素 并且将不胜感激您的建议和指示
  • 在 NSString 的情况下,对自动释放对象的周引用不会被释放

    Why temp即使对象被声明为 也不会被释放并设置为 nil week 但如果 Person 反对 它会按预期工作 做NSString对象内存生命周期的处理方式不同 如何 interface Person NSObject propert
  • mysql 按问题排序

    如果我有这样的查询 SELECT FROM table WHERE id IN 3 6 1 8 9 这个 ids 数组是在 php 中动态构建的 并且顺序对我来说很重要 my array array 3 6 1 8 9 如何按元素在数组中出
  • C# 中的全局 Keyhook

    我想制作一个新的应用程序 我可以通过外部 GUI 的按键进行控制 如果按下该键 首先应该有一个文本字段发生变化 最后我想让计时器在按键时启动 我用谷歌搜索并访问了 Stack Overflow 但没有找到任何可以真正帮助我解决问题的方法 我
  • d3 径向条形图中的标签放置

    在我的 d3 径向图表中 我试图将标签文本置于段弧上方 而不是保留在外圆之外 Fiddle var width 360 height 300 barHeight height 2 40 var formatNumber d3 format
  • 带样条+日期时间对象的平滑线不起作用

    我一直在努力让情节更加流畅 就像完成的一样here 但我的 X 是与 linspace 不兼容的日期时间对象 我将 X 转换为 matplotlib 日期 Xnew matplotlib dates date2num X X smooth
  • Android 上的 Google 收藏集

    有人在 Android 上使用过 Multimaps 吗 Guava 在 Android 上按原样运行 您遇到了什么问题 使用已发布的 JAR 而不是 Guava 源 与往常一样 您应该在构建过程中使用 ProGuard 来缩小最终二进制文
  • 我们可以将 SQL 从 S3 存储桶导入到 AWS ec2(实例)吗?

    我正在尝试将 SQL 文件从 S3 存储桶导入到 EC2 实例 SQL 文件是可公开访问的 并且在实例中安装的 mysql 客户端的帮助下 我正在执行以下命令 mysql gt source https s3 ap southeast 1
  • 有没有办法给一个节点添加多个标签?

    假设我正在创建一个关于食物的数据库 在其中我想添加木豆 它既是咖喱又是扁豆 SELECT FROM cypher menu CREATE LENTIL CURRY name Dal AS dal agtype 2023 02 20 06 4
  • TestNG错误-java.lang.NoSuchMethodError: org.testng.TestRunner.addListener(Ljava/lang/Object;)V

    我安装的testNG版本是 6 9 11 我的pom xml有 6 14 3 Eclipse版本neon 4 6 3 当我通过 TestNG 运行课程时 出现以下错误 有人可以帮我解决这个问题吗 java lang NoSuchMethod
  • 如果任何函数并行失败,则停止 bash

    我有一个 BASH 可以在我的 BASH 中并行运行 3 个函数 functionA my command echo ERROR gt gt LOG FILE exit 1 functionB my command echo ERROR g
  • 如何自定义@FeignClient Expander来转换参数?

    Feign默认扩展器转换参数 final class ToStringExpander implements Expander Override public String expand Object value return value
  • 如何在 Picturebox C# 中添加标签透明度?

    我在其中创建一个程序可以添加标签和图片框 所有控件都必须是面板的子控件 我使用这样的代码 panel2 Controls Add picturebox1 panel2 Controls Add label1 是的 问题是我想要在图片框上贴上
  • java控制台输入

    通过控制台输入的任何数据类型 就像我使用 BufferedReader 类所做的那样 是 String 之后我们将其转换为所需的数据类型 如 Inter parseInt 表示整数 但是在 C 中 我们可以接受任何输入原始数据类型 而在ja
  • std::auto_ptr 到 std::unique_ptr

    随着新标准的到来 以及某些编译器中已经可用的部分 新类型std unique ptr应该是替代品std auto ptr 它们的用法是否完全重叠 这样我可以在我的代码上进行全局查找 替换 不是我会这样做 但如果我这样做 或者我应该意识到一些