C++进阶之路之allocater类

标准库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的拷贝

本人猪头,如有错误请指出。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值