我有一个整数列表,我需要迭代,但数组是不合适的.之间有什么区别vectors和lists,是有什么我需要知道我挑式前?
为了清楚起见,我已经阅读了QT文档,但这是我所知道的程度:
QList<T>,QLinkedList<T>并QVector<T>提供类似的功能.这是一个概述:
- 对于大多数用途,
QList是正确的使用类.它的基于索引的API比QLinkedList's基于迭代器的API更方便,并且通常比QVector将其项目存储在内存中的速度更快.它还扩展到可执行文件中较少的代码.- 如果您需要一个真实的链表,保证在列表中间插入常量时间,并将迭代器设置为项而不是索引,请使用
QLinkedList.- 如果您希望项目占据相邻的内存位置,请使用
QVector.
如何使一个QVector小部件,如动态数的(或其他容器类),QPushButton或QComboBox在Qt的4?
我在我的窗口类的构造函数中使用了以下内容:
QVector<QComboBox*> foo; // Vector of pointers to QComboBox's
Run Code Online (Sandbox Code Playgroud)
现在我想用一些可以动态改变的控件来填充它:
for(int count = 0; count < getNumControls(); ++count) {
foo[count] = new QComboBox();
}
Run Code Online (Sandbox Code Playgroud)
我搜索了几个小时试图找到答案.Qt论坛提到了一个QPtrList,但Qt4中不再存在该类.我稍后尝试使用数组样式索引或.at()函数从每个文本中获取文本值.
我非常感谢声明,初始化,和填充的任何任何数据结构的一个例子QWidgets(QComboBox,QPushButton等)