14.3 自定义配置器
实现一个配置器最主要的是:分配和回收存储空间。要达到这样的效果,程序员只需在原有标准配置器的基础上修改配置器的几个成员函数即可,例如max_size()、allocator()和deallocator()。程序员可以将自己在内存分配方面的策略体现在这3个函数内,例如重新运用内存、使用共享内存、将内存映射到面向对象的数据库内等。
容器的实现往往需要多次分配和释放对象。对于allocator()的朴素实现,意味着对运算符new的大量使用。但运算符new的效率并不是很高。若使用固定大小存储块的存储池,则可以使配置器的分配效率比常规的运算符new更高。
标准程序库对于标准容器所使用的配置器有限制:允许标准容器的实现将分配器类型的对象认为是等价的。尤其是在访问两个序列的操作时,更是需要检查被处理的对象是否拥有相同的分配器。