编程心得 ---- 内存管理

编程心得 ---- 内存管理

    在编写内存管理方面的程序时,遇到需要分配大块的内存空间,然后将该大内存
空间分成若干等长的小内存块。程序中需要对这些小块进行读写和删除,其中每个小
内存块可以分配给不同的使用者。那么如何快速找到没有分配的内存块以及收回不使
用的内存块是性能瓶颈的关键所在。
    很显然,简单的可以使用bool数组来标记每块小内存块的使用情况,但是在查找
没有分配的内存块时只能通过for循环来依次查找其使用情况。这是很简单的也是很方
便想到的,但是其搜索速度达到了O(n),性能不是很好。
    但是,通过一个list<int>结构就可以解决这个问题。list拥有栈的功能,将未使
用的内存块标号push到list中,使用时只需pop一下即可;回收不使用的内存块时只需
将其标号push到list中去,这样很简单的就可以将搜索速度达到O(1)。

ps: list的一些相关函数
 void push_front(const T&)      //insert a new element at the beginning
 void push_back(const T&)     //insert a new element at the end
 void pop_front(void)                 //remove the first element
 void pop_back(void)                //remove the last element
  reference front()                      //return the first element
  reference back()                     //return the last element

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章