c++ - How to handle missing 'emplace_range' in C++0x STL? -


i have 2 containers, let's they're defined this:

std::vector<std::unique_ptr<int>> a; std::vector<std::unique_ptr<int>> b; 

assume both a , b populated. want insert entire container a particular location in b, using move-semantics unique_ptrs move b. let's assume i valid iterator somewhere in b. following doesn't work:

b.insert(i, a.begin(), a.end()); // error: tries copy, not move, unique_ptrs 

is there stl algorithm can achieve 'insert-range-by-moving'? guess need sort of emplace_range, there isn't 1 in vs2010's stl. don't want write loop inserts 1 one, since end nasty o(n^2) due shifting entire contents of vector every time inserts. other options?

auto a_begin = std::make_move_iterator(a.begin()); auto a_end = std::make_move_iterator(a.end());  b.insert(i, a_begin, a_end);  

Comments

Popular posts from this blog

android - Spacing between the stars of a rating bar? -

html - Instapaper-like algorithm -

c# - How to execute a particular part of code asynchronously in a class -