伤感情歌dj,张瑞敏砸冰箱,梦见下雨涨水
allocator<t> a | 定义一个名为a的allocator对象,它可以为类型为t的对象分配内存 |
a.allocate(n) | 分配一段连续的为构造的内,能容纳n个类型为t的对象 |
a.deallocate(p, n) | 释放从指针p中地址开始的内存,这块内存保存了n个类型为t的对象。p必须是以个先前有allocate返回的指针,而且n必须是创建p时所要求的大小。在调用deallocate以前,用户必须对每个在这块内存中创建的对象调用destroy |
a.construct(p, args) | p必须是一个类型为t的指针,指向一块原始内存;args被传递给类型为t的构造函数,用来在p指向的内存块中构造一个对象。 |
a.destroy(p) | p为类型为t的指针,对p指向的对象执行析构函数。 |
#include <iostream> #include <memory> using namespace std; class test{ public: explicit test(int d = 0) : data(d){cout << "new" << data << endl;} ~test(){cout << "del" << data << endl;} void fun(){cout << data << endl;} public: int data; }; int main(){ allocator<test> alloc; auto const p = alloc.allocate(2); alloc.construct(p, test(1)); p->fun(); auto q = p + 1; alloc.construct(q, test(2)); q->fun(); alloc.destroy(p); alloc.destroy(q); alloc.deallocate(p,2); }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论