略しSGI-STL(9) - 文字列(文字列/ wstringの)

char_traits.h:
    __char_traits_base:文字特性テンプレートベースクラス:
        内部CHAR_TYPE重量宣言文字タイプ、タイプ整数INT_TYPE; 
        さらになど、静的メンバ複数の機能を提供する:
        ASSIGN:割り当て機能、割り当てられたターゲット・キャラクタのソース文字の内容を、文字列バッファ指定された長さn、即ち、n回割り当て(ターゲット・バッファ・サイズがN未満でないことに注意してください)に割り当てられる大型バージョンもある。
        EQ:等しい比較関数2つの文字のパラメータを比較しますコンテンツ等しい戻り、真そうでない場合はfalseに、
        LT:falseにそうでない場合、左と右の引数が真を返すよりもパラメータが小さい場合、比較関数未満; 
        比較:比較関数、文字列比較と比較文字列長nを(2つの比較文字列nの長さより小さくない、または)例外をスローすることができ、各文字列のインデックスを比較順次ループは、前者が後者の戻りよりも小さい場合の両方が、同じである場合に真を返す - 1 、そうでなければ1; 
        長さ;入手文字列の長さ、__nullcharを実践内部構造は、それぞれの文字列に順番に比較します 比較EQコールは、(文字列が最後まで終了、または月例外でなければならないという条件で)がtrueを返すまで、呼び出しまで、この時間長は、文字列の長さの合計である 
        検索:指定された文字列の長さnが存在するか否かを見つけます文字列の比較かどうか、および文字列が返された場合最初のアドレスを見つけることがあれば、同等の文字cを見つけるEQそれぞれに対する内部ルックアップコールに続く文字cは、そうでなければ0を返す(N列の長さよりも大きくすることはできません) ;
        移動:ターゲットバッファにコピーされた文字列の指定された長さ、(存在する場合ときに、ソースとターゲット領域が重なりを安全かつ適切に処理することができることを保証することができる)内部コピーコールMEMMOVE実装は、(宛先バッファがなければならないことに注意してください)、すなわち、より大きいまたは指定されたソース文字列バッファサイズに等しく、十分に大きく、
        コピー:類似移動、memcpyをMEMMOVE異なるによって達成内部メモリコピーコールmemcopyので、前者を送信元と宛先が可能異常な重複をバッファリングする際、後者は、安全、正しい取り扱いとすることができる。
        EOF:エンド識別を返し、内部戻りをstatic_cast <INT_TYPE>( - 1 ); 
        eq_int_type:文字の2種類が等しい比較INT_TYPE、等しい場合はtrue、そうでない場合はfalseに戻り、
        to_int_type。 INT_TYPE型内部はstatic_castに型CHAR_TYPE <INT_TYPE> ;変換
        to_char_type:入力するINT_TYPEタイプCHAR_TYPE、内部static_castを <CHAR_TYPE> 変換; 
        not_eof:指定された値は、終了フラグ、内部構造EOFをINT_TYPEないかどうかを決定しますそれが最後の識別である場合や呼び出しは、その比較をeq_int_type そうでない場合は、パラメータの値を返し、0を返します。
    
    char_traits:__char_traits_baseから継承されたテンプレートクラスの文字プロパティ、;現在提供特別バージョンchar_traits < 文字>、Char_traits <wchar_t型> ; 
    
    char_traits < チャー >:CHAR文字特性文献型バージョン、INTにINT_TYPE整数型を__char_traits_baseに供給される、基本クラスの静的機能に加えて、現在のクラスはまた、部分的に書き換えが達成される。
        to_char_type :char型にint型、内部static_castを < CHAR >(static_castを<符号なしチャー > (C))コンバータ、即ち、第1 unsigned char型に変換され、文字型に変換; 
        to_int_type:char型int型します、内部static_castを <符号なしチャー > (C)変換、すなわち符号なし文字型文字型に変換し、次いで互換intに変換し、
        比較:比較関数、無による文字の比較が、内部コールmemcmpは、効率を改善するために実施; 
        長さ:文字列の長さを取得し、C strlenをストリング内部コールは、効率を改善するために、取得された、
        割り当ての2つのバージョン、長さnのバッファ指定されたバージョン文字列、内部に割り当てられた文字の一つとオーバーロード書き換え呼び出しにmemsetは、効率を改善するために達成; 
        
    char_traits <wchar_t型>:wint_t型基本クラスを使用して実装される整数型、などの文字特性ワイド文字特殊が__char_traits_base INT_TYPEを提供し、
 
stl_ctraits_fns.h。
    メインキャラクタ型クラスは、主に、文字列の関連する動作のために、機能を実現するオブジェクトの特性をカプセル化アルゴリズム; 
    _Eq_traits:文字は、特性関数オブジェクトテンプレートクラスに等しくbinary_functionから継承された;そのオーバーロード演算子()コールテンプレートパラメータはEQ等価比較達成内部
    _Eq_int_traits:特性関数オブジェクトテンプレートクラスに等しい整数で、binary_functionから継承します。 ;テンプレートパラメータは、オペレータ()が最初to_int_typeテンプレートパラメータによって形質転換CHAR_TYPEは等価比較達成eq_int_type後に呼び出される過負荷その内部CHAR_TYPE、INT_TYPEある
    _Lt_traits:比較関数オブジェクトクラスよりも小さいテンプレート文字はbinary_functionを継承し、重量含ま演算子()比較LTより小さい達成するために、内部テンプレートパラメータと呼ばれ、

stl_string_fwd.h:     
    フォワードのbasic_stringテンプレートクラス宣言、宣言の両方のbasic_string < チャー >と<wchar_tの>のbasic_string タイプ、直接的かつ便利外部をwstringの文字列であります文字列の使用 またはwstringの; 
    c_strインターフェースのストリング内部と呼ばれているCスタイルの書式文字列の文字列を取得するために静的関数を__get_c_string加えて、
        
文字列
    _Not_within_traits:テンプレート関数オブジェクトの文字プロパティ、unary_functionから継承された、 
    文字列のアドレスを保存するには、そのメンバ変数、コンストラクタで初期化_M_first、_M_lastは、現在のエンドツーエンドでしょう。
    メンバ関数演算子()_M_last以内に、与えられた範囲_M_firstで指定した文字列を見つけるために、それが存在する場合はそれ以外の場合はfalseを返し、trueを返し、それは内部で検索find_ifと呼ばれています; find_ifさらに、述語関数として_Eq_traits bind1st結合左使用して、述語関数をサポートするために、
    
    _String_alloc_base:文字列基本クラス割り当てられたテンプレートと、テンプレートパラメータのデータ・タイプT、それぞれ、ディスペンサタイプ_Allocator、及びブール識別_IsStatic(ディスペンサまたはディスペンサSGIか否かを判別するための基準)、
    データメンバー:
        _M_data_allocator:アロケータ・オブジェクト; 
        :; _M_startアプリケーションがコンテナ要素の最初のアドレスに相当する第1のアドレスバッファ()格納された
        ときに、保持容器の内容の長さ:_M_finish終了アドレス、
        _M_end_of_storage:バッファアドレスのアプリケーション終了を保存; 
    メンバ関数:
        コンストラクタ:参照_M_data_allocatorを初期化するallocator_type型ディスペンサー; 
        get_allocator:オブジェクトディスペンサ_M_data_allocatorを取得するステップと、
        _M_allocate:_M_data_によってオブジェクトディスペンサー アロケータ割り当てサイズは、メモリ素子のn型のサイズである。
        _M_deallocate:メモリ空間のサイズn型サイズのリリースで指定されたデータ要素のタイプポインタアドレスデータ要素;
    また、特殊なバージョン_String_alloc_base提供しています、<_tp、_Allocatorをtrueに >、調剤基本クラステンプレートの内部は、もはや使用ディスペンサーオブジェクトが、直接、静的メンバ関数が割り当てられているsimple_alloc管理を使用して、
    
    _String_base:文字列の基本クラスが継承します_String_alloc_base、そのベースクラスが抽出_S_instanceless _Alloc_traitsによって初期化される_IsStaticテンプレートパラメータが得られる。
        コンストラクタ:オーバーロードされたバージョン、アロケータ型によるオブジェクトの初期化の一種で、また別のパラメータnを加算し、内部コールnバイトのバッファに_M_allocate予め割り当てられ_M_start、_M_finish、_M_end_of_storage値を調整するステップと
        デストラクタ:現在のバッファを解放_M_deallocate_blockを呼び出します。    

 

おすすめ

転載: www.cnblogs.com/haomiao/p/11647262.html