我用vector建立了一个数组,可是当我采用clear()方法时,好像vector占用的内存没有释放掉,我该怎样做呢?

来源:百度文库 编辑:神马文学网 时间:2024/04/20 10:18:22
主  题:  我用vector建立了一个数组,可是当我采用clear()方法时,好像vector占用的内存没有释放掉,我该怎样做呢?
作  者:  jeikyzhou (jeikyzhou)
等  级:
信 誉 值:  100
所属社区:  C/C++ C++ 语言
问题点数:  20
回复次数:  12
发表时间:  2005-10-15 22:50:21
如题!
回复人: doway(john) ( ) 信誉:100  2005-10-15 23:20:00  得分: 0
resize 成不?
Top
回复人: jeikyzhou(jeikyzhou) ( ) 信誉:100  2005-10-15 23:45:00  得分: 0
rsize是不行的,好像vector占用内存后直到vector变量超出作用域后才会释放内存
Top
回复人: foochow(恰似你的温柔) ( ) 信誉:100  2005-10-15 23:59:00  得分: 0
VC6.0???
vector().swap(AA);
Top
回复人: doway(john) ( ) 信誉:100  2005-10-16 00:19:00  得分: 0
std::vector v(1024*1024);
v.resize(12);
{
std::vector tmp = v;
v.swap(tmp);
}
哈,这东西有意思。
《C++程序设计语言》一书中 C++ 的发明者专门讲到这个问题,但竟然讲错了!上面的代码可以释放多余的存储,但那对花括号是编者的修改。
Top
回复人: jeikyzhou(jeikyzhou) ( ) 信誉:100  2005-10-16 00:36:00  得分: 0
std::vector v(1024*1024);
v.resize(12);
{
std::vector tmp = v;
v.swap(tmp);
}
没看懂这可以释放内存
Top
回复人: winyin(无影) ( ) 信誉:99  2005-10-16 03:14:00  得分: 0
直接再声明一个空和原来的交换不就全删了吗? 原来空的退出作用域也自动OVER了.
Top
回复人: fangrk(加把油,伙计!) ( ) 信誉:125  2005-10-16 10:20:00  得分: 0
vector().swap(v);
或者
{
std::vector tmp = v;
v.swap(tmp);
}
都可以,意思一样的。
加一对大括号是可以让tmp退出{}的时候自动析构
Top
回复人: doway(john) ( ) 信誉:100  2005-10-16 12:53:00  得分: 0
多谢加油!:)
两星的评语,楼主该信了吧?
Top
回复人: shadowstar(CodeFast.very fast...) ( ) 信誉:101  2005-10-16 12:57:00  得分: 0
回复人: fangrk(加把油,伙计!) ( ) 信誉:125  2005-10-16 10:20:00  得分: 0
vector().swap(v);
或者
{
std::vector tmp = v;
v.swap(tmp);
}
都可以,意思一样的。
加一对大括号是可以让tmp退出{}的时候自动析构
应该不加{}也自动析构才对,不知道C++的编译器有没有做到这一点?
Top
回复人: chenhu_doc(小虎哥) ( ) 信誉:100  2005-10-16 13:10:00  得分: 0
doway(john)
两星的评语,楼主该信了吧?
///////////////////////////
反对偶像主义! ^=^
Top
回复人: skinny(冷虚空) ( ) 信誉:100  2005-10-18 08:40:00  得分: 0
使用 swap 就可以了
Top
回复人: lxpws(i‘m back) ( ) 信誉:100  2005-10-18 09:35:00  得分: 0
呵呵,设计者主要考虑效率方面的问题了
Top
我用vector建立了一个数组,可是当我采用clear()方法时,好像vector占用的内存没有释放掉,我该怎样做呢? 数组与vector有什么本质的区别??有了数组为什么还要用vector ?? vector 【我等你... 可是现在我连等的资格都没有了, 对不起, 打扰了】 我等你 可是现在我连等的资格都没有了 对不起 打扰了 Java Vector的用法 Java Vector的用法 好像我丈夫回来了 爱情是不可以望梅止渴的,一个男人愿意给女人多少时间,就是他有多爱你,你爱我的话,是可以挤出一点时间的,挤不出时间,是你已经做了抉择,既然没有时间,我释放你吧,释放你的同时,也是释放我自己 【楠蓉书香】爱情是不可以望梅止渴的,一个男人愿意给女人多少时间,就是他有多爱你,你爱我的话,是可以挤出一点时间的,挤不出时间,是你已经做了抉择,既然没有时间,我释放你吧,释放你的同时,也是释放我自己 一个丰胸的好方法,我亲自喝过,胸真的变大了呢 一个丰胸的好方法,我亲自喝过,胸真的变大了呢~ 一个丰胸的好方法,我亲自喝过,胸真的变大了呢. 一个丰胸的好方法,我亲自喝过,胸真的变大了呢!! 一个丰胸的好方法,我亲自喝过,胸真的变大了呢.. 一个丰胸的好方法,我亲自喝过,胸真的变大了呢!! 让Firefox最小化时释放占用的内存 我买了一张XP系统这张盘是一键安装的可是我没有安装过 谁知道告诉我高手 谢谢 - 已解决 ... 我等你... 可是现在我连等的资格都没有了 - 萝卜网 - 人人都是艺术家 没有你,我要做谁的舞伴呢? vector类 我好像悟透了点江恩理论! “大叔,别闹了,我可是有微博的人” 网站推广如何操作,方法很多,我没有整理呢???