为什么当我按如下方式填充 QVector 时:
QVector< QPair<qint32, QString> > vector(10000000);
QString temp;
for (int i = 0; i < 10000000; ++i)
{
temp = QString::fromUtf8("Vasya");
vector.replace(i, qMakePair(i, temp));
}
我的程序使用 470 MB 的 RAM,并且当这样:
QVector< QPair<qint32, QString> > vector(10000000);
QString temp2 = "Vasya";
for (int i = 0; i < 10000000; ++i)
{
vector.replace(i, qMakePair(i, temp2));
}
它只有 90 MB 的 RAM?