2013-10-24 6 views
2

У меня есть QList и QVector. Я заполняю Qlist, а затем пытаюсь скопировать в QVector. Ovector имеет метод fromList(). Но это не сработает.Заполнение QVector от QList

Мой код:

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 возвращает пустую

Я использую Qt 4.8.5 под Linux

ответ

9

Вы должны написать:

vectorA = QVector::fromList(listA); 

в fromList является статический метод класса QVector.

Код, который вы написали, создает QVector от listA, но поскольку вы не храните его в некоторой переменной с помощью оператора присваивания или используете его, например, через вызов функции, QVector отбрасывается. В любом случае, vectorA остается пустым.

В качестве альтернативы, вы можете использовать QList::toVector следующим образом:

vectorA = listA.toVector(); 
+0

поблагодарить вас @Lohrun – user4757345

+0

я должен также добавить определение шаблона для статического метода для его работы: QVector :: fromList (список) – KuramaYoko