#include <memory>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> vi{1, 3, 5, 7};
std::allocator<int> alloc;
auto p = alloc.allocate(vi.size() * 2);
auto q = std::uninitialized_copy(vi.begin(), vi.end(), p);
std::uninitialized_fill_n(q, vi.size(), 42);
for (auto w = p; w != p + vi.size() * 2; w++) {
std::cout << *w << ",";
}
std::cout << "\n";
for (auto w = p + vi.size() * 2; w != p;) {
alloc.destroy(--w);
}
alloc.deallocate(p, vi.size() * 2);
return 0;
}
// from C++ primer 5th(p.484)
// uninitialized_copy, uninitialized_fill_n
// g++ xx.cpp -std=c++11