社区
C++ 语言
帖子详情
new vecotr< string > 不需要 delete么?
lnxydl
2005-12-19 05:05:29
今天看 c++ primer 3nd 第六章有一段代码:vector<string> *words = new vector<string>;
但是程序中么有delete. 是不是vector内部负责delete? effective c++尚不是说最好 new 同 delete 要对应么?
...全文
370
18
打赏
收藏
new vecotr< string > 不需要 delete么?
今天看 c++ primer 3nd 第六章有一段代码:vector *words = new vector; 但是程序中么有delete. 是不是vector内部负责delete? effective c++尚不是说最好 new 同 delete 要对应么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yhbttfile
2005-12-20
打赏
举报
回复
new delete成双成对
_________________
呵呵,使用auto_ptr除外。auto_ptr的析构函数中已经包括了一个delete。
lnxydl
2005-12-20
打赏
举报
回复
好了,结贴,谢谢大家帮忙
csucdl
2005-12-19
打赏
举报
回复
new delete成双成对
winks
2005-12-19
打赏
举报
回复
要的,new就进入堆空间了,它不会自动释放掉的
pyrophile
2005-12-19
打赏
举报
回复
是的,我现在正在看第十七章,不过前面有些章节跳过去了,感觉用不到。
我把那个分词程序改称中文单个文本检索程序了,是在分词的基础上
rwxybh
2005-12-19
打赏
举报
回复
new和delete一起用,呵呵,也有例外
不信看看MFC中CWinApp的Initialize中new的CFrameWnd的子类,你的程序中不需要delete,因为框架帮你delete了
CframeWnd::~CFrameWnd() {delete this;}
fanghuoqiang
2005-12-19
打赏
举报
回复
to : zhousqy(标准C匪徒)(忘不了)
个人理解你的这个说法不完全正确的:
一个在函数中声明的一个局部变量,在退出这个函数时会自动调用自己的析构函数的(如果有的话)。
lz 说的 word 是自己new 出来的,应该调用 delete 没错。调用 delete 则立刻就可以执行其析构函数了,并且释放由new 申请而来的内存资源。但是在这里执行析构函数与是否内存泄露没有必然关系,内存泄露是由于 new 引起的,不关 vector<>* 析构函数的事情。
bm1408
2005-12-19
打赏
举报
回复
绝对是要用的,
sinall
2005-12-19
打赏
举报
回复
要!
vikingemail
2005-12-19
打赏
举报
回复
楼上说的很对,自己惹得祸,自己来解决,否则就要出大事情:)
sankt
2005-12-19
打赏
举报
回复
一个原则:
自己申请,自己释放
lnxydl
2005-12-19
打赏
举报
回复
回 pyrophile(写代码就像打太极):就是那个分词程序。
找到了,在第17章有函数进行析构。
这种写法真是不太好啊,不看到17章真的不知道咋回事。
zhousqy
2005-12-19
打赏
举报
回复
回复人: goodboy1881(积木) ( ) 信誉:110 2005-12-19 17:13:00 得分: 0
匪徒啊,人家说的是那个
vector<string> *words = new vector<string>;
为什么没有
delete.....
没有delete words 。
那vector怎么能调用到析构函数呢,嘿嘿。
-----------------------------
瓦,偶潜了。。。
pyrophile
2005-12-19
打赏
举报
回复
你说的是哪个分词程序吧,那里面为什么没有delete,因为后面的函数还要用到它,所以不能delete。那个程序中的函数是连在一起的。
不知道搂主能不能理解?
还有new和delete最好是对应的,要不然在程序中有可能你会new不到空间的(资源耗尽)。
ddnlkd1204
2005-12-19
打赏
举报
回复
new和delete应该要对应的,这种情况应该要delete的,恩~
积木
2005-12-19
打赏
举报
回复
匪徒啊,人家说的是那个
vector<string> *words = new vector<string>;
为什么没有
delete.....
没有delete words 。
那vector怎么能调用到析构函数呢,嘿嘿。
zhousqy
2005-12-19
打赏
举报
回复
vector和string都有自己的析构函数,那里面有delete。
all4u
2005-12-19
打赏
举报
回复
应该要吧。
呵呵,楼主看书太仔细了,佩服ing....
<3>华为工程师 ,带你实战C++(2018版)
这是一套全面而系统的C++学习教程: 1,C++对C的全面提高(类型增强,函数重载,默认参数,引用,
new
/
delete
内联函数,类型强转,命名空间,系统
string
类。2,封装,类与对象,友元,运算符重载。 3,继承与派生,...
C++学习笔记(12)
介绍了十一种常用的STL组件(1.array 2.vector 3.list 4.stack 5.queue 6.deque 7.priority_queue 8.set/multiset/bitset 9.map/multimap 10.initializer_list 11.tuple),以及迭代器的知识。
C++-----vector
C++vector详解,模拟实现,迭代器失效,以及一些奇葩问题
(十八)Core Java 泛型的使用 (116)
目录 : 1 ) . 入门泛型的基本应用2 ) . 泛型的内部原理及更深应用3 ) . 泛型的通配符扩展应用4 ) . 泛型集合的综合应用案例5 ) . 自定义泛型方法及其应用6 ) . 自定义泛型方法的练习与类型推断总结7 ) . 自定义泛型类的应用8 ) . 通过反射获得泛型的实际类型参数 一. 入门泛型的基本应用1 ) . 泛型是一种约束,就是将一组数据分门别类...
c++中vector的用法详解
vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己
需要
的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include以包含所
需要
的类文件vector 还有一定要加上using name
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章