template <class CharType, class Traits = char_traits <CharType>, class Allocator=allocator<CharType>> class basic_string
而 string 類的宣告形式如下:typedef basic_string <char> string;
對於 basic_string 類別範本,其第 1 個引數是 CharType,第 2 個引數和第 3 個引數的預設值和 CharType 均相關。在宣告 string 類時,引數 char 取代模板中的 CharType,string 即成為模板的範例,同時模板中的第 3 個引數成為 "class Allocator = allocator <char>",其意義為 string 中物件的記憶體型別為 char 型。allocator_type string:: get_allocator () const
函數返回 string 類的記憶體模型物件,可以用於構造新的字串。以如下程式為例介紹該函數的使用方法。#include <iostream> #include <string> #include <memory> using namespace std; int main () { string s("abed"); basic_string <char> s1 (s.get_allocator()); basic_string <char> :: allocator_type aT = s1.get_allocator (); string::size_type se = s1.size (); cout << se << endl; }由於在 string 類中,allocator 是保護成員,難以直接呼叫對記憶體的直接設定。對於設定器,一般情況下都是使用預設設定器。對於本節內容,讀者了解即可。