Заполнение QVector из QList

У меня есть QList и QVector. Я заполняю Qlist, а затем пытаюсь скопировать в QVector. В Ovector есть метод 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 возвращает пустой

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


person user4757345    schedule 24.10.2013    source источник


Ответы (1)


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

vectorA = QVector::fromList(listA);

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

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

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

vectorA = listA.toVector();
person Lohrun    schedule 24.10.2013
comment
Мне также пришлось добавить определение шаблона в статический метод, чтобы он работал: QVector‹T›::fromList(list) - person gibertoni; 27.01.2015