c中stl的vector容器的解構函式怎麼用

2021-05-25 20:29:47 字數 1891 閱讀 2689

1樓:

解構函式不需

bai要直接呼叫。而du

是在物件失效時zhi自動呼叫的。所謂物件失dao效,是指程式已經執行版出區域性變數權的作用域或者是對物件指標進行delete時。

比如void foo()

//當此函式執行結束時,自動呼叫array的解構函式~vector()。

2樓:匿名使用者

c++中stl的vector容器抄的解構函式不用自己呼叫襲,系統會進行析構,但是vector內元素的清空需要手動進行。

非指標的資料型別,比如 int、string、char ,還包括自定義的資料結構、自定義的類 等等只需要手動呼叫vector的clesr函式就可以了,空間的釋放和析構系統都會自動進行。

指標型別的資料,這種情況需要手動進行釋放。也就是說new 產生的記憶體需要手動使用free進行釋放。

3樓:匿名使用者

提供你一個辦法:

在檔案中,下一個斷點

~vector()

看看會不會執行到,這樣,你就知道,你不必自己呼叫 ~vector(),系統會做的。

我的機器上,是第 386 行。試試看

4樓:匿名使用者

這裡不需要手動釋抄放,如樓上幾位所說。我說說解構函式呼叫的時機吧!

記憶體管理應該明白吧!

這裡你的vector是在棧上的,所以main函式執行完後,會自動對棧進行**,對棧進行**時,會自動呼叫vector物件的解構函式,因此不需要顯式呼叫。

5樓:匿名使用者

~vector();不需要你呼叫,呼叫會出錯,程式會自動呼叫的,

關於stl map自動解構函式,該怎麼處理

6樓:歐章旭

c++中stl的vector容器的解構函式不用自己呼叫,系統會進行析構,但是vector內元素的清空需要手動進行。

非指標的資料型別,比如 int、string、char ,還包括自定義的資料結構、自定義的類 等等只需要手動呼叫vector的clesr函式就可以了,空間的釋放和析構系統都會自動進行。

指標型別的資料,這種情況需要手動進行釋放。也就是說new 產生的記憶體需要手動使用free進行釋放。

c++中解構函式有什麼作用?在什麼情況下用?

7樓:蛙家居

析構bai函式主要作用就du是釋放資源,避免zhi記憶體洩漏。

1、析dao構函式回(destructor) 與建構函式相反,當物件結束其生命周答期時(例如物件所在的函式已呼叫完畢),系統自動執行解構函式。解構函式往往用來做「清理善後」 的工作(例如在建立物件時用new開闢了一片記憶體空間。

2、解構函式如果我們不寫的話,c++ 會幫我們自動的合成一個,就是說:c++ 會自動的幫我們寫一個解構函式。很多時候,自動生成的解構函式可以很好的工作,但是一些重要的事蹟,就必須我們自己去寫解構函式。

3、按照 c++ 的要求,只要有 new 就要有相應的 delete 。這個 new 是在建構函式裡 new 的,就是出生的時候。所以在死掉的時候,就是呼叫解構函式時,我們必須對指標進行 delete 操作。

8樓:匿名使用者

析構函來數主要作用就是釋放資源自,避免記憶體洩漏bai如果你的類裡du

面只用到的基本型別,zhi如daoint char double等,系統的預設解構函式其實什麼都沒有做

但如果你使用了其他的類如vector,string等,系統的預設解構函式就會呼叫這些類物件的解構函式

如果是自己寫解構函式的話,如果你的類裡面分配了系統資源,如new了記憶體空間,開啟了檔案等,那麼在你的解構函式中就必須釋放相應的記憶體空間和關閉相關的檔案;這樣系統就會自動呼叫你的解構函式釋放資源,避免記憶體洩漏

容器的容積它的體積A,大於B等於C小於D無

一個容器的容積 c 它的體積 因為容器有厚度。如果容器壁厚度忽略不計,則等於。否則是小於。望採納 在同一物體中,容積 體積a等於b大於c小於d無法比較 c因為體積是指物體所佔空間的大小,從外面量的 容積是指容器所能容納液體的多少,從裡面量的。所以,對於同一物體,容積一定小於體積。一個長方體的玻璃鋼,...

為什麼在串聯電容器中,每個電容器所帶的電荷量都相等,而且等於

電容器串聯的話,首先是斷路的。嗯,兩個電容器通過導線相連,兩板帶有電性相反,電量相同的電荷所以這兩個電容器所帶的電荷量相等 可能有點詞不達意,要不明白可以追加問題我再解釋吧 為什麼每一個串聯電容的電荷量都相等且等於總電荷量?100 在穩定狀態時,串聯各電容器帶的電荷量是相等的。因為,如果不相等,連線...

正方體玻璃容器的稜長為2DM,向容器中倒入5L水,再把一塊石頭放入水中,這時量得容器內水深15CM,石頭的體

15cm 1.5dm,還有必須是石頭完全沒入水中,才能按以下計算 2 2 1.5 5 1立方分米 石頭體積1立方分米 一個正方體玻璃容器稜長2dm,向容器中倒入5l水,再把一塊石頭放入水中 這時量得容器內水深15cm 石頭的 現在有5l的水,但加入石頭之後,容器中所佔的體積是1.5x2x2等於6l,...