Qt 读取文件并映射到 QVector 非常慢(崩溃)

Qt reading file and mapping to QVector very slow (crashes)

所以我想做的是读取文件并将其映射到二维 QVector。到目前为止,这是我的代码

void dataModel::parseFileByLines()
{
QVector<QVector<QString> > dataSet;
lastError = "";
QRegExp reg(fileDelimiter);
QFile inFile(inputFile);
if (inFile.open(QIODevice::ReadOnly)){
    QTextStream fread(&inFile);
    long totalSize = inFile.size();
    QString line;
    while(!fread.atEnd()){
        line = fread.readLine();  
        dataSet.append(line.split(reg,QString::KeepEmptyParts).toVector());
   }
}else{
   lastError = "Could not open "+inputFile+" for reading";
}
}

我的问题是,当处理 1000,000 行或更多行时,程序崩溃并显示一条消息 "This application has requested the Runtime to terminate it in an unusual way"。有没有更有效的方法可以实现我的目标?如果是怎么办?

输入文件可能是这样的格式

ID、姓名、年龄、性别...等

1,山姆,12

...

...

1000000

非常感谢任何帮助或建议

我已经在我的电脑上测试了这个 (QList) 版本,它比 QVector 版本运行得更快,我也相信它不会崩溃。

void parseFileByLines(QString inputFile)
{
    QList<QList<QString> > dataSet;
    QString lastError = "";
    QFile inFile(inputFile);
    if (inFile.open(QIODevice::ReadOnly)){
        QTextStream fread(&inFile);
        long totalSize = inFile.size();
        QString line;
        while(!fread.atEnd()){
            line = fread.readLine();
            QList<QString> record = line.split('\t',QString::KeepEmptyParts);
            dataSet.append(record);
        }
    }else{
        lastError = "Could not open "+inputFile+" for reading";
    }
}