我想这不是一个问题,而是一个征求意见的请求。
今天我试图将一个更大的数据集加载到我的软件中,并遇到了几个错误的分配。
所以有问题的代码看起来像这样。
QVector<float>verts;
try
{
verts.reserve( numPoints * 6 );
}
catch ( std::bad_alloc& )
{
qDebug() << "error";
}
在这种情况下 numPoints 是 92911773 所以它会尝试分配 numpoints * 6 * sizeof( float ) = 2,214,922,152 字节。我的机器运行具有 12Gb 内存的 64 位 linux。所以这应该不是问题。
所以这会引发 bad_alloc 异常。现在,如果我将 QVector 更改为 std::vector 它可以工作。任何人都可以对此发表评论吗?