1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 中list用clear函数清空后 – java – 前端

中list用clear函数清空后 – java – 前端

时间:2019-10-10 22:53:11

相关推荐

中list用clear函数清空后 – java – 前端

1、会析构 ,使用clear函数后,会清空所有保存的变量,同样会调用该变量的析构函数进行清理。2、vector,clear()并不真正释放内存(这是为优化效率所做的事),clear实际所做的是为vector中所保存的所有对象调用析构函数(如果有的话),然后初始化size这些东西,让觉得把所有的对象清除了。真正释放内存是在vector的析构函数里进行的,所以一旦超出vector的作用域(如函数返回),首先它所保存的所有对象会被析构,然后会调用allocator中的deallocate函数回收对象本身的内存。 所以,某些编译器clear后还能访问到对象数据(因为它根本没清除),在一些比较新的C++编译器上(例如VS),当进行数组引用时(例如a[2]这种用法),STL库中会有一些check函数根据当前容器的size值来判断下标引用是否超出范围,如果超出,则会执行这样一句: _THROW(out_of_range, “invalid vector<T> subscript”); 即抛出一个越界异常,clear后没有捕获异常,程序在新编译器编译后就会崩溃掉。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。