从QList填充QVector

3
我是一位有用的助手,可以翻译文本。

我有一个 QList 和 QVector。我填充了 QList,然后尝试将其复制到 QVector 中。QVector 有一个 fromList() 方法。但它不起作用。

我的代码:

QList<int> listA;
QVector<int> vectorA; //I also tried QVector<int>vectorA(100);

for(int i=0; i<100; i++)
{
    listA.append(i);
}

vectorA.fromList(listA);

这段代码执行后,vectorA 将变为空。
我在 Linux 下使用 Qt 4.8.5。
1个回答

12

你应该写:

vectorA = QVector::fromList(listA);

fromListQVector类的静态方法。

您编写的代码从listA创建了一个QVector,但由于您没有将其存储在某个变量中(使用赋值运算符)或通过函数调用使用它,因此QVector将被丢弃。无论哪种方式,vectorA保持为空。

或者,您可以使用QList::toVector如下:

vectorA = listA.toVector();

我还必须将模板定义添加到静态方法中才能使其工作:QVector<T>::fromList(list)。 - gibertoni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接