您的位置:首页 > 编程语言 > C语言/C++

c++: allocator, uninitialized_copy, uninitialized_fill_n

2015-12-16 11:13 483 查看
#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: