猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
为什么在标准容器中使用std:autoptr<>是错误的?
为什么在标准容器中使用std:autoptr<>是错误的?
为什么使用它是错误的?
std::auto_ptr<>
标准容器?
哈士奇WWW
浏览 736
回答 3
3回答
繁星coding
这个复制语义的auto_ptr与容器不兼容。具体而言,复制一个auto_ptr对于另一个对象,不会创建两个相等的对象,因为一个对象已经失去了指针的所有权。更具体地说,复制auto_ptr导致其中一个副本释放指针。还没有定义容器中的这些遗留物中的哪一个。因此,如果存储auto_ptrs在集装箱里。
0
0
0
婷婷同学_
STL容器需要能够复制存储在其中的项目,并且设计成期望原始和副本是等价的。自动指针对象有一个完全不同的契约,复制创建所有权转移。这意味着根据使用情况,AUTO_PTR容器将表现出奇怪的行为。这里详细描述了有效STL(ScottMeyers)第8项中可能出错的地方,以及有效C+(ScottMeyers)第13项中不那么详细的描述。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C++
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续