整体框架
本文主要针对construct和destory
construct
#include <new.h>
template <class T1,class T2>
inline void destory(T1 *p,const T2& value)
{
new(p)T1(value);//这里使用的是placementnew
}
构造函数主要是使用placement new来在指定的地方生成对象
STL 借助C++中的 placement new 来提高效率,因为使用 new 操作符分配内存需要在堆中查找足够大的剩余空间,这个操作速度是很慢的,而且有可能出现无法分配内存的异常。借助 placement new 就可以解决这个问题,我们构造对象都是在一个预先准备好了的内存缓冲区中进行,不需要查找内存,内存分配的时间是常数,而且不会出现在程序运行中途出现内存不足的异常。
destory
有两个版本
- 第一个版本的析构函数,接受一个指针
- 第二个版本接受两个迭代器
第一个版本
第一个版本: 内部直接调用指针所指向类的析