貼一段內存池的代碼, 簡單, 實用. 供大家學習

realdreamer 2003-01-27 09:47:19


namespace rpt
{
template< class T>
class TypePool
{

union Note
{
T t;
Note* next;
};

enum FreeType {
FREE_AUTO = 0,
FREE_RESERVE,
FREE_FREE,
};

public:
T* get();
void put( T* t );
void free( int i, FreeType type );

TypePool();
~TypePool();


private:
// 拒绝位拷贝和拷贝构造 sirdrm (以后可能会修改, 现在未实现)
TypePool& operator=( const TypePool<T>& p );
TypePool( const TypePool<T>& t );

HANDLE heap;
Note start;
Note end;
Note temp;
BOOL bCreateSucceeded;
};


template<class T>
T* TypePool<T>::get ()
{

if( start.next == &end )
{
return (T*)::HeapAlloc( heap, HEAP_ZERO_MEMORY, sizeof(Note) );
} else {

temp.next = start.next;
start.next = temp.next->next;
return (T*)temp.next;
}
}




template<class T>
void TypePool<T>::put ( T* t )
{
((Note*)t)->next = start.next;
start.next = ((Note*)t);
}




template<class T>
void TypePool<T>::free ( int i, FreeType type )
{
// sirdrm 未实现
}

template<class T>
TypePool<T>::TypePool( const TypePool<T>& t )
{
// sirdrm 未实现
}



template<class T>
TypePool<T>::TypePool()
{
heap = NULL;

bCreateSucceeded = FALSE;

heap = ::HeapCreate( 0, 4096, 0 );
if( heap != NULL)
{
bCreateSucceeded = TRUE;
}

start.next = &end;
end.next = NULL;
}



//// 拒绝位拷贝
template<class T>
TypePool<T>& TypePool<T> :: operator= (const TypePool<T> & p )
{

}




template<class T>
TypePool<T> :: ~TypePool()
{
if( heap != NULL )
{
::HeapDestroy ( heap );
}
}


}


...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenrich 2003-01-28
  • 打赏
  • 举报
回复
学习学习再学习,放假也学习
qing_li73 2003-01-28
  • 打赏
  • 举报
回复
cast
IceboundRock 2003-01-27
  • 打赏
  • 举报
回复
谢谢楼主,学习中……
佩服佩服,帮你顶。
akiy 2003-01-27
  • 打赏
  • 举报
回复
搂主英明!
代码下载链接: https://pan.quark.cn/s/feb6394ba113 放射性核素衰变查询软件“decay”是一款为核物理学领域设计的专用工具,其功能在于提全面的放射性核素衰变信息,涵盖了衰变链、分支比等核心数据。该软件特别适合科研人员、工程师以及关注核能或放射性物质的用户群体。在深入探讨这款软件之前,有必要先掌握放射性核素的基础知识。放射性核素定义为不稳定的原子核,由于质子与中子数量失衡,会自发触发核反应,释放能量及/或产生新粒子,此现象即为核衰变。常见的核衰变形式包含α衰变、β衰变(涵盖β+衰变与β-衰变)、γ衰变和电子俘获等。每一种衰变类型都关联着特定的能量释放和新生成的核素。“decay”软件的主要作用是进行衰变链的查询。衰变链描述的是一个放射性核素通过一连串连续的衰变步骤,最终转变为非放射性核素的现象。比如,铀-238会经由多次α和β衰变,最终转化为铅-206。该软件能够呈现这些衰变链的详尽资料,助力用户追踪并解析这一过程。分支比反映了衰变过程中各个可能途径的概率,即一个放射性核素在发生衰变时选择特定路径的可能性。分支比对于解析衰变过程中的能量分布和产物生成具有决定性意义,特别是在核能开发、环境检测和医疗领域中不可或缺。这款软件的运行环境设定在Windows XP系统,这表明它可能依赖于较早期的API和库,而这些在现代操作系统上可能存在兼容性问题。对于那些仍在使用或研究老旧系统的人员而言,“decay”是一份极具价值的参考资料。放射性核素的应用遍及多个领域,包括医学上的放射性同位素疗法、地质学中的年代测定、能源产业中的核反应堆构建以及环境科学里的污染物追踪等。“decay”软件所提的数据能够协助专业人士精确计算和预估放射性物质的特性...
内容概要:本文档提了Windows环境下Nginx的详细配置指南,适用于企业内网部署场景。配置文件以Django + Waitress应用架构为基础,全面涵盖反向代理、HTTPS加密、静态文件托管、安全防护等功能。文档对每一项配置均进行了通俗易懂的解释,包括工作进程设置、日志管理、连接处理、SSL证书配置、HTTP/2支持以及多种安全加固措施,如恶意请求拦截(SQL注入、XSS)、敏感文件访问限制、IP白名单机制和关键请求头转发,确保Web服务的安全性与稳定性。; 适合人群:具备基本Web服务器概念,正在Windows平台部署Python Web应用(尤其是Django)的开发人员或运维人员,尤其适合缺乏Nginx实战经验的初级至中级技术人员。; 使用场景及目标:①搭建安全可靠的反向代理服务器,将Nginx作为Django应用的前端网关;②实现HTTPS访问、静态资源分离与安全策略强化;③防范常见Web攻击,保护敏感配置文件和接口不被非法访问;④解决因请求头缺失导致的CSRF、登录失效等问题。; 阅读建议:建议结合实际项目逐步配置,并重点关注proxy_set_header各项参数的作用及其与Django的协同设置,务必在测试环境中验证所有安全规则和代理功能后再上线。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧