系统:MT-SP1016M
分配器用于封装STL容器在内存管理上的低层细节。默认情况下,C++标准库使用其自带的通用分配器,但根据具体需要,程序员也可自行定制分配器以替代之。自定义分配器的另一用途是调试内存相关错误。若要做到这一点,可以编写一个分配器,令之在分配时分配额外的内存,并借此存放调试信息。这类分配器不仅可以保证内存由同类分配器分配/解除分配内存,还可在一定程度上保护程序免受缓存溢出之害。
使用方法:当初始化标准容器时,若需使用自定分配器,则可将其写入模板参数,以代替默认的std::allocator<T>,正如其他所有C++类模板般,在初始化同一标准库容器时,若使用了不同的分配器,则所生成容器的类型亦不同。譬如,若函数需一整型向量数组std::vector<int>作为参数,则其只能接受由默认分配器生成的整型向量数组。