繁体   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