У меня есть данные в базе данных MySQL, которые я хочу поместить в вектор, чтобы поработать над ними.Возможно, эта проблема относится не только к QSqlTableModels, а к любой QAbstractTableModel, но я не уверен.Прямо сейчас у меня есть
model->QSqlQueryModel::setQuery(q); //model is a QSqlTableModel, q gets 1 column of data
QVector<QVariant> var;
var.reserve(num_rows);
QVariant datum;
QModelIndex idx;
for (i=0; i<num_rows; ++i)
{
idx = model->index(i,0,QModelIndex());
datum = model->data(idx);
var.push_back(datum);
}
Есть ли способ улучшить это, например, операцию копирования на более низком уровне, которую я мог бы использовать?
РЕДАКТИРОВАТЬ: Следуя совету бедуина, япопытался сделать это без QSqlTableModel, а просто путем итерации QSqlQuery.Это привело к значительно более низкой производительности.Например, операция копирования, которая заняла 380 мс с использованием вышеупомянутого метода, заняла 525 мс, итерируя по QSqlQuery, и с другими запросами были аналогичные различия.