簡體   English   中英

我應該如何存儲對象

[英]how should I store objects

我有一個名為human的類,其中包含int age, int heightQString 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM