一、 空间配置器标准接口
参见《STL源码剖析》第二章-2.1。
二、具备次配置力的SGI空间配置器
SGI STL的配置器与众不同,也与标准规范不同,其名称是alloc而非allocator,而且不接受任何参数(虽然SGI也定义有一个符合部分标准、名为sllocator的配置器,但SGI自己从未用过它,也不建议使用,主要因为效率不佳)。这并不会带来什么困扰:我们通常很少需要自行指定配置器名称,而SGI STL的每一个容器都已经指定其缺省的空间配置器为alloc。
// 在程序中要明白采用SGI配置器,则不能采用标准写法: vector <int, std::allocator<int> > iv; // 标准写法,in VC or CB vector <int, std::alloc> iv; // SGI,in GCC // SGI STL 每一个容器都已经指定缺省空间配置器 template <class T, class Alloc = alloc > // 缺省使用alloc为配置器 class vector { ... };
时间: 2024-12-27 09:09:58