首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分配stl容器安全吗?

分配stl容器安全吗?
EN

Stack Overflow用户
提问于 2012-06-21 00:11:20
回答 4查看 1K关注 0票数 5

例如:

代码语言:javascript
复制
set<int> s1;
set<int> s2;
s1.insert(1);
s2.insert(2);
s1 = s2;

安全吗?如果是这样,那么旧元素(以及它们出现的内存)是从哪里来的?

EN

回答 4

Stack Overflow用户

发布于 2012-06-21 00:13:18

是的,做这项任务是安全的。它调用复制构造函数或赋值操作符,较旧的元素在s1中被擦除,并被s2的元素替换。

注意:如果有任何潜在的问题,那么复制构造函数和赋值就会被禁止,比如fstreamofstreamifstream

票数 6
EN

Stack Overflow用户

发布于 2012-06-21 00:13:12

是。旧的元素将以通常的方式销毁,并释放任何内存。(当然,像往常一样,如果你在容器中存储指针,它只会销毁指针,而不会释放它所指向的东西)

票数 5
EN

Stack Overflow用户

发布于 2012-06-21 00:12:53

是的,您的示例是安全的。但请注意:您没有将s2赋值给s1,而是将s2复制到s1。欲了解更多信息,请访问:set::operator=

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11123684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档