Одним из решений было бы сначала создать std::list
, а затем преобразовать его в QList
:
QList<Struct> ql =
QList<Struct>::fromStdList(std::list<Struct>(values + 0, values + 2));
Однако для этого потребуется две копии содержимого массива вместо одной.
Другое решение состоит в том, чтобы использовать std::copy
вместе с back_inserter
:
QList<Struct> ql;
ql.reserve(2);
std::copy(values + 0, values + 2, std::back_inserter(ql));
Если вы используете массив только для простого способа инициализации QList
, вы можетевозможно, вместо этого используйте оператор вставки (при условии, что Struct
определяет правильный конструктор):
QList<Struct> ql;
ql << Struct(a, b)
<< Struct(c, d);