deallocate
c++中的allocator是标准库中的一个类,负责内存分配管理。
下面是《STL源码剖析》中一个简单allocator实现的部分源代码:
deallocate:
template <class T>
inline void _deallocate(T* buffer)
{
::operator delete(buffer); //为什么不用 delete [] ? ,operator delete 区别于 delete
//operator delete 是一个底层操作符
}
destory:
template <class T>
inline void _destory(T *ptr)
{
ptr->~T();
}
destory负责调用类型的析构函数,销毁相应内存上的内容(但销毁后内存地址仍保留)
deallocate负责释放内存(此时相应内存中的值在此之前应调用destory销毁,将内存地址返回给系统,代表这部分地址使用引用-1)
参考:《STL源码剖析》 P44-45;
《C++ Primer》 P428-429.
相关阅读
(JSTL)jstl.jar和standard.jar的下载地址与使用
jstl.jar下载地址: http://repo2.maven.org/maven2/javax/servlet/jstl/standard.jar下载地址: http://repo2.maven.org/maven2/t
圣魔大战3(Castle Fantisia)艾伦希亚战记修改器/秘籍—
艾伦西亚战记== 艾伦希亚战记,是一个游戏武器:UltraEdit(金山游侠自带的文件修改器也可以,只是这个专业)目标: 存档文件(建议先备份)
1、jsp 头部页面引入函数 jsp页面需要引入自定义fns函数声明: <%@ taglib prefix=”fns” uri=”/WEB-INF/tlds/fns.tld” %>,自定