C++、vectorテンプレートクラスの問題?std::vector points;

803 ワード

似たような問題に遭遇しました:くっついてメモしてください
C++、vectorテンプレートクラスの問題?std::vector > points;
私の具体的な問題は、C++Primer Plusの本テンプレート類のインスタンス化されたフォーマットが一般的にvector名であることです.でもstd::vectorned_allocator(データ型2)>points;この文には明らかに2つのデータ型があります.いったい...
実際にはテンプレートは関数と同じように、デフォルトのパラメータを持つことができます.std::vectorの宣言は
1
2
3
4 template <      class   T,      class   Allocator = std::allocator class   vector;
2つのテンプレートパラメータがあり、Tは要素タイプであり、Allocatorはvectorが使用する動的メモリを提供する責任を負います.ここでAllocatorパラメータにはデフォルト値があり、一般的にはこのパラメータを指定する必要はありません.ただし、メモリに特別な要件がある場合は、独自に定義したメモリ管理クラスを提供する必要があります.
コンテナの操作とメモリ管理を分けるのがSTLのハイライトで、コンテナを設計するときにも学ぶことができます.