gpt4 book ai didi

c++ - 将多个相同类型的指针添加到 vector

转载 作者:行者123 更新时间:2023-11-30 01:49:34 24 4
gpt4 key购买 nike

我有一个指针 vector ,我想在其中存储指向相同类型对象的指针

Parent * tempParent=new Parent();

vector<Parent *> parents;
for(int i=0;i<9;i++){
tempParent.setAge(i);
parents.push_back(tempParent);
}

这是什么意思,它将所有 parent 的年龄设置为 8 岁。有什么想法可以让他们指向不同的对象,以便他们都有不同的年龄吗?谢谢

最佳答案

如果您想在 std::vector 中存储 9 个 Parent 对象,那么您需要创建其中的 9 个。

你有多种解决问题的方法,你可以只存储普通对象(而不是指针,因为如果你不需要它们就不必存储指针),例如:

std::vector<Parent> parents;
for (int i = 0; i < 9; ++i) {
parents.push_back(Parent(i)); // assuming a Parent::Parent(int age) constructor
}

如果你真的想要指针,你肯定需要调用 new 9 次:

std::vector<Parent*> parents;
for (int i = 0; i < 9; ++i) {
Parent* parent = new Parent(i);
parents.push_back(parent);
}

请注意,如果您真的需要指针,将它们包装在 unique_ptr 中是个好主意,前提是 vector 拥有它们的所有权:

std::vector<std::unique_ptr<Parent>> parents;
parents.push_back(std::unique_ptr<Parent>(new Parent(age));

关于c++ - 将多个相同类型的指针添加到 vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28882595/

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