請問如何刪除vector的值 |
答題得分者是:pwipwi
|
shao0914
一般會員 發表:9 回覆:5 積分:2 註冊:2003-12-17 發送簡訊給我 |
|
shao0914
一般會員 發表:9 回覆:5 積分:2 註冊:2003-12-17 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
vector的clear和swap法釋放是不同的清除概念
基本上vector作完clear後雖然他的size是0,但是他的capacity在使用後不會是0... 意思是,clear並不會釋放記憶體。 但是swap法不同, 他把vector的內部記憶體和另一個local的vector記憶體互換, 經由local object的release,可以達到釋放記憶體的需求。 總歸來說,如果一個vector只是要清除element,之後還可能會再重新加入新的element clear是首選,這樣才能減少reallocation的時間。 但是如果一個vector不只要清除element,還要釋放memory block, 就使用swap法,不然memory block還是會存在。 ===================引 用 shao0914 文 章=================== 容小弟自問自答吧 小弟在網路上找尋相關資料後,尋得一個辦法。 即利用空的vector去swap,這樣即可釋放記憶體 例:vector<所要清空之vector形態>().swap(欲清空之vector名稱) 但小弟不懂的地方是,為什麼利用一個空的vector即可以釋放舊有的vector? 這個不是又多了一個vector嗎? 關於這個問題,有前輩可以替我解答的嗎?謝謝 |
shao0914
一般會員 發表:9 回覆:5 積分:2 註冊:2003-12-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |