gpt4 book ai didi

c++ - 使用 vector 聚合

转载 作者:行者123 更新时间:2023-11-30 03:04:12 24 4
gpt4 key购买 nike

我想创建一个聚合并用 vector 存储对象,我写的是否正确? :

 Class A
{
private:
vector <B *> pB;
public:
A();
A(int tag);
~A();
}

A::A(int tag){
for (i=0; i != tag, i++)
pB.push_back(new B());
}

并且要创建的不是聚合而是组合,我只需将其添加到析构函数中:

A::~A(){
vector <B *>::iterator citer = pB.begin();
while (citer != pB.end())
delete *(citer++);
pB.clear();
}

是吗?谢谢

最佳答案

你缺少访问指针的方法,比如

B* getPtr(int iP) {
if(iP<pB.size()) {
return pB.at(iP);
}
return NULL
}

并删除列表的单个指针:

void delPtr(int iP) {
if(iP<pB.size()) {
delete pB.at(iP);
pB.erase(pB.begin()+iP);
}
}

关于c++ - 使用 vector 聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8837634/

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