推 dzwei: vector是動態產生的嘛? 04/09 16:52
→ dzwei: 如果你沒有用 vector A = new vector 這種方式產生vector 04/09 16:53
→ dzwei: 照理說 不用去擔心memory的問題 04/09 16:54
vector在c++內不是要另外去swap才會釋放嗎?
所以不知道是不是在struct內也是需要
→ blackcity: 裡面是宣告固定的 vector<int> Vecitem; 這樣 04/09 16:54
※ 編輯: blackcity (114.34.229.118), 04/09/2018 16:56:36
→ dzwei: 恩 那就不用擔心了 , 但還是要注意效能的問題 參考 04/09 16:57
→ dzwei: 另外 swap的問題可以用 std::vector裡面的non-member func 04/09 17:00
OK~了解 感謝大大
※ 編輯: blackcity (114.34.229.118), 04/09/2018 17:02:33
→ bluesoul: 請使用shrink_to_fit 04/09 19:58
這個好像要安裝VC11,目前沒有安裝其他插件的打算
推 KanzakiHAria: 會這樣問表示你不懂STL container的意義 04/09 21:23
→ KanzakiHAria: 你想釋放的是vector這個container本身還是 04/09 21:24
→ KanzakiHAria: 你想釋放vector的capacity? 04/09 21:24
抱歉,我的確不太懂。我想釋放的是整個struct所佔用的memory,因為看到vector需要
額外作swap才能釋放,所以擔心struct內的vector也需要額外的處理
推 steve1012: 不需要釋放 04/10 00:29
※ 編輯: blackcity (114.34.229.118), 04/10/2018 09:15:16
※ 編輯: blackcity (114.34.229.118), 04/10/2018 09:15:39
推 steve1012: 為啥要swap 才能釋放記憶體? 04/10 09:27
推 KanzakiHAria: 完全不用 vector就是會自動管理記憶體 04/10 11:32
→ KanzakiHAria: 甚至要說swap是錯誤的用法也不為過 04/10 11:32
→ KanzakiHAria: 你只要管好你的MyStruct本身 04/10 11:32
想說C/C++的記憶體釋放、管理都需要自行處理
之前上網查是說如果用push_back的方式,就算下clear所佔的記憶體空間也不會釋放
所以才查到用swap去釋放
結果看來應該是完全不需要額外對vector作處理
struct只要不是用new的方式宣告,應該也不需要去作其他的的處理了
※ 編輯: blackcity (114.34.229.118), 04/11/2018 14:34:21