为C++标准库容器写自己的内存分配程序
作者 佚名技术
来源 程序设计
浏览
发布时间 2012-06-30
quot;sizeof(struct Cookie) = "<<sizeof(Cookie)<<std::endl; std::cout<<"Totalsize = "<<pHead->iTotalsize<<std::endl; std::cout<<"UsedSize = "<<int(pHead->pStartfree-(char*)pHead)<<std::endl; std::cout<<"FreepoolSize = "<<int(pHead->pEndfree - pHead->pStartfree)<<std::endl; std::cout<<"Startall = "<<&(pHead->pStartall)<<std::endl; std::cout<<"Startfree = "<<&(pHead->pStartfree)<<std::endl; std::cout<<"Endfree = "<<&(pHead->pEndfree)<<std::endl; std::cout<<"nFreelist info :"<<std::endl; for(i=0 ; i<NODENUMS ; i++) { j=0; std::cout<<"iUseNum["<<i<<"] = "<<pHead->iUseNum[i]<<std::endl; std::cout<<"FreelistIndex["<<i<<"] = "<<pHead->sFreelistIndex[i]<<std::endl; my_free_list = pHead->uFreelist[i]; if(my_free_list->M_client_data != 0) { while(my_free_list->M_client_data != 0) { j++; my_free_list = my_free_list->M_free_list_link; } std::cout<<"free_list["<<i<<"]; node counts="<<j<<std::endl; } } } template <class T1, class T2> bool operator== (const MyAlloc<T1>&,const MyAlloc<T2>&) throw() { return true; } template <class T1, class T2> bool operator!= (const MyAlloc<T1>&,const MyAlloc<T2>&) throw() { return false; } } #endif /*MY_ALLOCATOR_H_*/ 测试程序的源码如下: // MyStl.cpp : 定义控制台应用程序的入口点。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 如何成为一名C++程序员下一篇: C++箴言:理解inline化的介入和排除
关于为C++标准库容器写自己的内存分配程序的所有评论