#include <vector>
#include <memory>
#include <algorithm>
#include <iostream>
int main()
{
using namespace std;
vector<size_t> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
unique_ptr<char[]> p( new char[v.size() * sizeof(size_t)] );
// copy data from v into char array
copy( reinterpret_cast<char *>(v.data()),
reinterpret_cast<char *>(v.data()) + v.size() * sizeof(size_t),
p.get() );
vector<size_t> w;
w.resize(3);
// copy data from char array into w
copy( p.get(), p.get() + v.size() * sizeof(size_t), reinterpret_cast<char *>(w.data()) );
for( size_t i = 0; i < w.size(); ++i ) {
cout << w[i] << " ";
}
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPG1lbW9yeT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgogCmludCBtYWluKCkKewogIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKICB2ZWN0b3I8c2l6ZV90PiB2OwogIHYucHVzaF9iYWNrKDEpOwogIHYucHVzaF9iYWNrKDIpOwogIHYucHVzaF9iYWNrKDMpOwogCiAgdW5pcXVlX3B0cjxjaGFyW10+IHAoIG5ldyBjaGFyW3Yuc2l6ZSgpICogc2l6ZW9mKHNpemVfdCldICk7CiAKICAvLyBjb3B5IGRhdGEgZnJvbSB2IGludG8gY2hhciBhcnJheQogIGNvcHkoIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhciAqPih2LmRhdGEoKSksIAogICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhciAqPih2LmRhdGEoKSkgKyB2LnNpemUoKSAqIHNpemVvZihzaXplX3QpLAogICAgICAgIHAuZ2V0KCkgKTsKIAogIHZlY3RvcjxzaXplX3Q+IHc7CiAgdy5yZXNpemUoMyk7CiAKICAvLyBjb3B5IGRhdGEgZnJvbSBjaGFyIGFycmF5IGludG8gdwogIGNvcHkoIHAuZ2V0KCksIHAuZ2V0KCkgKyB2LnNpemUoKSAqIHNpemVvZihzaXplX3QpLCByZWludGVycHJldF9jYXN0PGNoYXIgKj4ody5kYXRhKCkpICk7CiAKICBmb3IoIHNpemVfdCBpID0gMDsgaSA8IHcuc2l6ZSgpOyArK2kgKSB7CiAgICBjb3V0IDw8IHdbaV0gPDwgIiAiOwogIH0KfQo=