首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

问个vector clear的有关问题

2012-03-16 
问个vector clear的问题.vectorvectorint vi然后对这个二维向量做push_back操作赋值如果最后我要释放

问个vector clear的问题.
vector<vector<int>> vi;
然后对这个二维向量做push_back操作赋值

如果最后我要释放vector内存,请问vi.clear()释放了内层的vector<int>的内存了么?
或是我是否需要显示的对内层的每一个vector<int>调用clear操作.

[解决办法]

如果最后我要释放vector内存,请问vi.clear()释放了内层的vector <int> 的内存了么? 

是的 ,vi.clear()时会调用内内层vector <int>的析构函数。
[解决办法]
不用,只要你使用的内存不是new的
标准库会帮你完成

[解决办法]
当然不需要每个都调用clear操作。
vi.clear()会对其每个vector<int>类型的元素都执行析构,而vector<int>的析构显然会自动释放内存。

[解决办法]
1,只要不是全局变量
2,只要不是自由存储区变量(即new类型)
函数结束后,标准库会通过析构函数自动清理变量内存的

如果中间要释放内存,则要一层一层的释放
[解决办法]
不需要,stl的优点就是这个,比较人性化
[解决办法]
stl容器存的是副本,在清除的时候会调用析构函数

如果你的元素内容不是new出来的

热点排行