new
在申请内存时,他将内存分配和对象的构造放在了一起,delete
也将对象的析构和内存的释放结合在一起。但allocator
类允许将内存分配和对象构造分开。
分配内存
allocator<string> alloc;
auto p = alloc.allocate(n);
构造对象
根据args调用string的构造函数,但c++20把这个删了,具体原因现在的水平还看不懂。以后再说: 为什么C++20中要移除std::alloctor的construct与destory_李兆龙的博客-CSDN博客
alloc.construct(p, args);
批量复制
返回最后复制的元素后一元素的迭代器。
uninitialized_copy(begin, end, begin2); //将迭代器begin到end的元素拷贝到begin2开始的内存
uninitialized_copy_n(begin, n, begin2);//将begin开始的n个元素拷贝到begin2
批量填充
返回void
uninitialized_fill(begin, end, t);//在begin到end上创建对象t
uninitialized_fill_n(begin, n, t);//从begin开始创建n个对象t