标准库allocater类定义在memory头文件中,类似于vector,allocater是一个模板。为了定义一个alocater对象,我们必须指定对象的类型
尤其是construct方法,args参数是构造函数的参数,相当于explict构造函数 和带有emplace的方法
allocater<type> alloc; //可以分配type类型的allocater对象
auto const p = alloc.allocate(n); //分配n个未初始化的对象
allocater<T> a;
a.allocate(n);
a.deallocate(p,n); //释放a.allocate 返回的指针,n是申请的容量大小在该方法调用之前,请对对象调用destory方法
a.construct(p,args) //p是类型为T*的指针,指向一块原始内存,arg被传递给类型为T的构造函数
a.destroy(p); p是类型为T的指针,此方法对对象执行析构函数操作
为了使用allocate的内存必须使用construct方法构造,使用未构造的内存,其行为是未定义的
allocater算法
uninitialized_copy(b,e,b2); //b e 是两个迭代器 将 b e 迭代器之间的元素拷贝到b2指定的未构造内存中
uninitialized_copy_n(b,n,b2); //从迭代器b的位置拷贝n个元素到b2开始的内存中
uninitialized_fill(b,e,t);//从b到e迭代器拷贝t
uninitialized_fill_n(b,n,t); //从迭代器b塞入n个t的拷贝
本人猪头,如有错误请指出。