[英]how should I store objects
我有一個名為human
的類,其中包含int age, int height
, QString name
等信息。
用戶單擊按鈕按鈕以添加新的人類信息,並且當用戶輸入信息時,程序會創建新的人類對象(例如john,johan等)。
我想存儲所有對象,然后希望能夠訪問每個單獨的對象及其成員。 什么是最好的存儲對象?
我當時想做的是聲明static std::vector<human*> humanVector;
在頭文件上
然后
humanVector.push_back( new human(name, age, height));
聽起來是正確的還是我需要采取其他方式或使用不同的方法,例如static std::vector<std::shared_ptr<human>> humanVector;
如果使用靜態std::vector<human*> humanVector;
,需要確保在向量作用域之前釋放向量中的對象,否則會導致內存泄漏問題。
使用std::vector<std::shared_ptr<human>> humanVector;
是異常安全的,它負責構造對象。 std :: shared_ptr是一個智能指針,它通過指針保留對象的共享所有權。 當發生以下任一情況時,該對象將被銷毀並釋放其內存:擁有該對象的最后剩余的shared_ptr被銷毀。 擁有該對象的最后剩余的shared_ptr通過operator =或reset()分配了另一個指針。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.