Let v1 be the target vector, v2 needs to be appended to the back of it.
I’m now doing:
v1.reserve(v1.size() + v2.size());
copy(v2.begin(), v2.end(), back_inserter(v1));
Is this the most efficient way? Or can it maybe be done just via copying a chunk of memory?
Thanks!
After a lot of arguing (and a reasonable comment from Matthieu M. and villintehaspam), I’ll change my suggestion to
I’ll keep the former suggestion here:
There are some reasons to do it the latter way, although none of them enough strong:
reserveeither, but for a specific implementation it might be true. If hunting for a bottleneck it might be rasonable to check that.reservewe have a C++ Standard guarantee that there will be only a single reallocation, whileinsertmight be implemented inefficiently and do several reallocations (also something to test with a particular implementation).