我正在使用QList来存储从SQL表中读取的数据。该表有超过一百万条记录。我需要将它们放入列表中,然后在列表中进行一些处理。当大小很大时QList崩溃
QList<QVariantMap> list;
QString selectNewDB = QString("SELECT * FROM newDatabase.M106SRData");
QSqlQuery selectNewDBQuery = QSqlDatabase::database("CurrentDBConn").exec(selectNewDB);
while (selectNewDBQuery.next())
{
QSqlRecord selectRec = selectNewDBQuery.record();
QVariantMap varMap;
QString key;
QVariant value;
for (int i=0; i < selectRec.count(); ++i)
{
key = selectRec.fieldName(i);
value = selectRec.value(i);
varMap.insert(key, value);
}
list << varMap;
}
我得到“qvector.h,行534:内存不足”错误。
当列表达到< 1197762项>的大小时程序崩溃。我尝试使用reserve(),但它不起作用。 QList是否限于特定的大小?
您的RAM被限制为特定大小。 – Kane
你能看到你的程序使用的内存是否超过了你的机器上安装的内存。 – basslo
“QList崩溃...”不,它没有。班级不会崩溃;应用程序崩溃了。 – MrEricSir