gpt4 book ai didi

c++ - qDeleteAll 和 new[]

转载 作者:太空狗 更新时间:2023-10-29 21:41:28 25 4
gpt4 key购买 nike

1) 我可以使用 qDeleteAll() 吗?用于删除使用 new[] 创建的对象数组?

QVector<int*> aVector;
int * a=new int[100];
for(int i=0;i<100;i++)
a[i]=i;
aVector.push_back(a);
....
if(!aVector.isEmpty())
{
qDeleteAll(aVector);
aVector.clear();
}

2) 是qDeleteAll()实现删除 QVector< QVector<*> >

QVector< QVector<int*> > v;
.....
qDeleteAll(v);

最佳答案

qDeleteAll 使用 C++ delete 运算符删除容器中的项目。因此,您不能删除使用 new[]qDeleteAll 创建的对象。

关于第二个问题,容器的容器没有任何重载。您应该对 vector 的每个项目调用 qDeleteAll:

foreach(QVector<int*> vector, v)
qDeleteAll(vector);

关于c++ - qDeleteAll 和 new[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28765057/

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