最近学习stl源码编程,一直想自己实现一个内存池,恰好前段时间2015阿里实习笔试有一道内存池的题目,将代码写在这里了。
//
// Created by ma on 2015/6/28.
//
#ifndef MEMORYPOOL_H_
#define MEMORYPOOL_H_
#include <stddef.h>
typedef enum M_P_SIZE{
INIT_SIZE=16,
ADD_BUFF_SIZE=32
}M_P_SIZE;
class MemoryPool {
public:
MemoryPool(size_t buff_size=1,size_t freesize=INIT_SIZE);
~MemoryPool();
void *allocate();
void deallocate(void *p);
size_t chuck(const size_t n);
size_t get_free_buff_size() const { return free_buffer_size;}
size_t get_total_buf