首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STL向量释放

STL向量释放
EN

Stack Overflow用户
提问于 2011-01-21 09:08:55
回答 3查看 478关注 0票数 2

给定一个指针的STL vector,在销毁vector本身之前,必须释放每个元素。是否存在阻止STL库自动执行此操作的技术含义?

谢谢

EN

回答 3

Stack Overflow用户

发布于 2011-01-21 09:13:04

STL不为您做这件事的原因是它不知道它是否应该这样做。你可能有一个指向数组的指针向量(在这种情况下它需要执行delete[]),一个指向常规对象的指针(在这种情况下它需要执行delete操作),或者可能是来自某个自定义分配器的内存。这些指针也可以与其他一些对象共享,在这种情况下,删除它们会导致这些其他对象指向垃圾数据,从而导致未定义的行为。这些指针也可以指向堆栈分配的内存,在这种情况下,不需要释放内存。

票数 5
EN

Stack Overflow用户

发布于 2011-01-21 09:12:58

您可以存储在向量被析构时不应删除的指针

使用智能指针的向量(例如boost::shared_ptr)接收自动释放

票数 2
EN

Stack Overflow用户

发布于 2011-01-21 09:14:47

如果向量包含指针,并不意味着指针指向动态内存。如果是这样的话,应该对每个指针应用delete还是delete[]?如果指针指向使用placement new创建的对象,该怎么办?所有这些问题都应该由程序员来回答,而不是由库来回答。

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

https://stackoverflow.com/questions/4754452

复制
相关文章

相似问题

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