1

在 QT 中是否有值的动态存储?

IE:

QDoubleArray x;
x.append(4.6);
x.append(4.8);
x.append(5.2);

//x.count() = 3 
4

2 回答 2

5

在 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。

于 2013-08-06T16:38:01.380 回答
3
QVector<double> x;
x.push_back(4.6);
x.push_back(4.8);
x.push_back(5.2);
x.size() is 3
于 2013-08-06T16:34:48.907 回答