erase的问题

yanxiazhiqiu 2010-08-11 11:17:32
STL中list容器中如果把std::string作为容器的存储元素,在erase()某个元素时,会自动释放string对象申请的内存吗?
...全文
85 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
egmkang 2010-08-11
  • 打赏
  • 举报
回复
顶ls
new/delete
new[]/delete[]
成对使用
pengzhixi 2010-08-11
  • 打赏
  • 举报
回复
LZ记住,是你new的就由你来delete,这是一个好习惯。
yuhuaijun 2010-08-11
  • 打赏
  • 举报
回复
如果对象是指针,则不会, 需要我们在erase之前自己delete对象
pengzhixi 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 yanxiazhiqiu 的回复:]
STL中list容器中如果把std::string作为容器的存储元素,在erase()某个元素时,会自动释放string对象申请的内存吗?
[/Quote]

这个你不用担心,它会处理。
jackyjkchen 2010-08-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cd2108006026 的回复:]
会啊。。
string作为list内部节点对象的子对象,自动析构。当然string的析构函数会自动释放它动态分配的内存
[/Quote]
不一定会立即释放,这种细节标准没有规定,看各种实现的优化,不立即释放效率高些
Csuxiaowu 2010-08-11
  • 打赏
  • 举报
回复
会的 这就是STL的一个好处
cd2108006026 2010-08-11
  • 打赏
  • 举报
回复
会啊。。
string作为list内部节点对象的子对象,自动析构。当然string的析构函数会自动释放它动态分配的内存

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧