PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] Struct內vector的記憶體釋放?
作者:
blackcity
(超黑城市)
2018-04-09 16:33:12
開發平台(Platform): (Ex: Win10, Linux, ...)
Win7
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VS2012
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
n/a
問題(Question):
想請問一下Vector在Struct內的記憶體該如何才是完整正確的釋放?
我宣告了一個Struct裡面包含了Vector
1. 宣告Struct為物件
MyStruct StructItem;
2. 宣告Struct為指標
MyStruct *StructItem;
StructItem = new StructItem();
delete StructItem;
請問這兩種方法,Struct內的Vector物件是不是都會完整的釋放
不需要額外再去對vector作Swap的動作?
另外問一下,Vector Swap前,Clear是必須的嗎?
謝謝~
作者:
dzwei
(Cout<< *p << \n ;)
2018-04-09 16:52:00
vector是動態產生的嘛?如果你沒有用 vector A = new vector 這種方式產生vector照理說 不用去擔心memory的問題
作者:
blackcity
(超黑城市)
2018-04-09 16:54:00
裡面是宣告固定的 vector<int> Vecitem; 這樣
作者:
dzwei
(Cout<< *p << \n ;)
2018-04-09 16:57:00
恩 那就不用擔心了 , 但還是要注意效能的問題 參考
http://t.cn/RmfRNZT
另外 swap的問題可以用 std::vector裡面的non-member funcstd::swap 參考
https://bit.ly/2qiTLuq
作者:
bluesoul
(å¿™æ»ä½ è€çˆ¸)
2018-04-09 19:58:00
請使用shrink_to_fit
作者:
KanzakiHAria
(神崎・H・アリア)
2018-04-09 21:23:00
會這樣問表示你不懂STL container的意義你想釋放的是vector這個container本身還是你想釋放vector的capacity?
作者:
steve1012
(steve)
2018-04-10 00:29:00
不需要釋放
作者:
KanzakiHAria
(神崎・H・アリア)
2018-04-10 11:32:00
完全不用 vector就是會自動管理記憶體甚至要說swap是錯誤的用法也不為過你只要管好你的MyStruct本身
繼續閱讀
[問題] double pointer for malloc
yisin
[問題] 利用nlohmann json 讀取發生錯誤
smartjay
[問題] C++ class type 及 物件生成疑問
x246libra
Re: [問題] 兩題C++面試題的詢問
wawi2
[問題] 關於Visual studio的除錯
AdamChiau
Re: [問題] 物件的定義 .. function為何不是物件?
KanzakiHAria
[問題] 物件的定義 .. function為何不是物件?
alpho
Re: [問題] 兩題C++面試題的詢問
plsmaop
[討論] deprecating raw pointer
KanzakiHAria
Re: [問題] 兩題C++面試題的詢問
descent
Links
booklink
Contact Us: admin [ a t ] ucptt.com