Una soluzione sarebbe quella di creare prima un std::list
e poi convertire in un QList
:
QList<Struct> ql =
QList<Struct>::fromStdList(std::list<Struct>(values + 0, values + 2));
Tuttavia, ciò comporterebbe due poliziotti il contenuto dell'array invece di uno solo.
L'altra soluzione è quella di utilizzare std::copy
oltre ad back_inserter
:
QList<Struct> ql;
ql.reserve(2);
std::copy(values + 0, values + 2, std::back_inserter(ql));
Se si usa un array solo per avere un modo semplice per inizializzare il QList
, si potrebbe forse usare l'operatore di inserimento invece (supponendo Struct
definisce il costruttore appropriato):
QList<Struct> ql;
ql << Struct(a, b)
<< Struct(c, d);
fonte
2011-09-05 13:42:45
Prima volevo usare un array di int come esempio, ma ho pensato che qualcuno avrebbe raccomandato 'q1 << 1 << 2', quindi ho preso l'esempio di inizializzazione aggregato :) Grazie,' std: : copy' era azzeccato, lo farò! –