編程心得 ---- 內存管理

編程心得 ---- 內存管理

    在編寫內存管理方面的程序時,遇到需要分配大塊的內存空間,然後將該大內存
空間分成若干等長的小內存塊。程序中需要對這些小塊進行讀寫和刪除,其中每個小
內存塊可以分配給不同的使用者。那麼如何快速找到沒有分配的內存塊以及收回不使
用的內存塊是性能瓶頸的關鍵所在。
    很顯然,簡單的可以使用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

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