#include <algorithm> // algorithmic move
#include <vector>
#include <list>
#include <iterator> // front_inserter
#include <iostream>
int main(){
std::vector<int> v;
std::list<int> l;
v.reserve(10);
for (unsigned i = 0; i < 10; ++i)
v.push_back(i);
// I used 'rbegin' and 'rend' so the order stays the same
std::move(v.rbegin(), v.rend(), std::front_inserter(l));
std::copy(l.begin(), l.end(), std::ostream_iterator<int>(std::cout, " "));
}
I2luY2x1ZGUgPGFsZ29yaXRobT4gLy8gYWxnb3JpdGhtaWMgbW92ZQojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bGlzdD4KI2luY2x1ZGUgPGl0ZXJhdG9yPiAvLyBmcm9udF9pbnNlcnRlcgojaW5jbHVkZSA8aW9zdHJlYW0+CgppbnQgbWFpbigpewogIHN0ZDo6dmVjdG9yPGludD4gdjsKICBzdGQ6Omxpc3Q8aW50PiBsOwoKICB2LnJlc2VydmUoMTApOwogIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDsgKytpKQogICAgdi5wdXNoX2JhY2soaSk7CgogIC8vIEkgdXNlZCAncmJlZ2luJyAgYW5kICdyZW5kJyBzbyB0aGUgb3JkZXIgc3RheXMgdGhlIHNhbWUKICBzdGQ6Om1vdmUodi5yYmVnaW4oKSwgdi5yZW5kKCksIHN0ZDo6ZnJvbnRfaW5zZXJ0ZXIobCkpOwoKICBzdGQ6OmNvcHkobC5iZWdpbigpLCBsLmVuZCgpLCBzdGQ6Om9zdHJlYW1faXRlcmF0b3I8aW50PihzdGQ6OmNvdXQsICIgIikpOwp9