gpt4 book ai didi

c++ - 我应该如何存储对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:55:30 25 4
gpt4 key购买 nike

我有一个类叫做 human包含 int age, int height 等信息, QString name等..

用户单击按钮以添加新的人类信息,程序会在用户输入信息时创建新的人类对象(例如,john、johan...)。

我想存储所有对象然后我希望能够访问每个单独的对象及其成员。什么是最好的存储对象?

我想的是声明static std::vector<human*> humanVector;在头文件上

然后

humanVector.push_back( new human(name, age, height));

听起来是否正确,或者我需要用不同的方式来做或使用不同的 decleration,比如 static std::vector<std::shared_ptr<human>> humanVector;

最佳答案

如果使用静态 std::vector<human*> humanVector; , 需要确保在 vector 作用域之前释放 vector 中的对象,否则会导致内存泄漏问题。

使用 std::vector<std::shared_ptr<human>> humanVector;是异常安全的,它负责破坏对象。 std::shared_ptr 是一个智能指针,通过指针保留对象的共享所有权。当发生以下任一情况时,对象将被销毁并释放其内存:拥有该对象的最后一个剩余的 shared_ptr 被销毁。拥有该对象的最后一个剩余的 shared_ptr 通过 operator= 或 reset() 分配另一个指针。

关于c++ - 我应该如何存储对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20043669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com