[Development] OK to add zero/bulk copy to QVector?

Yves Bailly yves.bailly at laposte.net
Sun Dec 29 22:44:58 CET 2013


On 29/12/2013 20:10, Jiergir Ogoerg wrote:
> Hi,
> there are 2 simple options to speed up setting/adding elements to a
> vector when a heap buffer is filled in in advance:
> 1) Bulk copy.
> Assign a bunch of elements at once (from another vector or array),
> like std::vector::assign() does.
> A big extra copy happens, but avoids multiple calls to push_back().

What about this, re-using your example:
my_struct *arr = new my_struct[count];
QVector<my_struct> v(count);
memcpy(v.data(), arr, sizeof(my_struct)*count);

Assuming "my_struct" doesn't contain self-referencing references or
virtual table.

Regards,

-- 
(o< | Yves Bailly                          | -o)
//\ | Linux Dijon  : http://www.coagul.org | //\
\_/ |                                      | \_/`



More information about the Development mailing list