在 QT 中是否有值的动态存储?
IE:
QDoubleArray x;
x.append(4.6);
x.append(4.8);
x.append(5.2);
//x.count() = 3
在 QT 中,QStringList是一种特殊情况,它是唯一可以被视为通用容器(如QList<QString>
. 它的存在主要是因为处理字符串列表是开发中的一个常见问题,因此它提供了一些 QList 没有的有用方法。
QT 文档一般推荐使用QList类:
QList<double> x;
x.push_back(4.6);
x.push_back(4.8);
x.push_back(5.2);
文档是这样说的:
对于大多数用途,QList 是正确使用的类。它的基于索引的 API 比 QLinkedList 的基于迭代器的 API 更方便,而且它通常比 QVector 更快,因为它将项目存储在内存中的方式。它还扩展到您的可执行文件中的更少代码。
如果您需要一个真正的链表,并保证在链表中间插入恒定时间,并且迭代器指向项目而不是索引,请使用 QLinkedList。
如果您希望项目占据相邻的内存位置,请使用 QVector。
QVector<double> x;
x.push_back(4.6);
x.push_back(4.8);
x.push_back(5.2);
x.size() is 3