设置字符串的自定义分配器

问题描述:

我知道我可以使用语法vector<T, Alloc>为矢量设置自定义分配器。有没有一种方法可以为字符串做同样的事情?设置字符串的自定义分配器

是的。来自类模板basic_string所有的字符串类,宣布为:

template <class charT, class traits = char_traits<charT>, 
      class Allocator = allocator<charT> > 
class basic_string; 

例如,std::string只是typedef basic_string<char> string;

第三个模板参数是分配,所以你可以这样做:

typedef basic_string<char, char_traits<char>, my_allocator<char> > my_string; 
+3

注:my_allocator不必是一个模板。 – 2010-07-16 20:02:13