欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

中list用clear函數清空后

傅智翔2年前14瀏覽0評論

中list用clear函數清空后?

1、會析構 ,使用clear函數后,會清空所有保存的變量,同樣會調用該變量的析構函數進行清理。2、vector,clear()并不真正釋放內存(這是為優化效率所做的事),clear實際所做的是為vector中所保存的所有對象調用析構函數(如果有的話),然后初始化size這些東西,讓覺得把所有的對象清除了。真正釋放內存是在vector的析構函數里進行的,所以一旦超出vector的作用域(如函數返回),首先它所保存的所有對象會被析構,然后會調用allocator中的deallocate函數回收對象本身的內存。 所以,某些編譯器clear后還能訪問到對象數據(因為它根本沒清除),在一些比較新的C++編譯器上(例如VS2008),當進行數組引用時(例如a[2]這種用法),STL庫中會有一些check函數根據當前容器的size值來判斷下標引用是否超出范圍,如果超出,則會執行這樣一句: _THROW(out_of_range, "invalid vector<T> subscript"); 即拋出一個越界異常,clear后沒有捕獲異常,程序在新編譯器編譯后就會崩潰掉。

java list保存,中list用clear函數清空后