アロケータは C 標準ライブラリの重要な部分であり、その機能はコンテナのメモリ割り当てと解放リクエストを処理することです。言い換えれば、アロケーターは、STL コンテナーのメモリ管理の低レベルの詳細をカプセル化するために使用されます。
アロケータの役割
C プログラミングでは、アロケータ (英語: allocator) が C 標準です。ライブラリの重要な部分。
C のライブラリでは、「コンテナ」と総称されるさまざまなデータ構造 (リンク リスト、セットなど) が定義されています。これらのコンテナの共通の特徴の 1 つは、プログラムの実行中にサイズを変更できることです。これを実現するには、動的なメモリ割り当てが特に必要で、アロケータを使用してコンテナのメモリ割り当てと解放リクエストを処理します。
言い換えると、アロケータは、STL コンテナのメモリ管理の低レベルの詳細をカプセル化するために使用されます。
デフォルトでは、C 標準ライブラリは独自のユニバーサル アロケータを使用しますが、特定のニーズに応じて、プログラマは独自のアロケータをカスタマイズしてそれを置き換えることもできます。
アロケーターは、C 標準テンプレート ライブラリ (STL) の一部として Alexander Stepanov によって最初に発明されました。その本来の目的は、基礎となるデータ モデルに基づいて「ライブラリをより柔軟かつ独立させる」メソッドを作成することでした。 " そして、プログラマがライブラリ内のカスタム ポインタと参照型を利用できるようにします;
しかし、標準テンプレート ライブラリが C 標準に組み込まれたとき、C 標準委員会は、データ モデルが完全に妥協点として、標準のアロケータ制限がより厳しくなり、抽象化による許容できないパフォーマンス損失が発生しました。その結果、既存の標準は Stepanov の当初のビジョンよりも大幅に効率が低下しました。説明されているディスペンサーは、カスタマイズ可能性が大幅に制限されています。
アロケータのカスタマイズは制限されていますが、多くの場合、カスタム アロケータが依然として必要であり、これは通常、さまざまなタイプのメモリ空間 (共有メモリや再利用メモリなど) をカプセル化するためです。) アクセス方法、またはメモリ割り当てにメモリ プールを使用する場合のパフォーマンスを向上させるため。さらに、メモリ使用量と実行時間の観点から、少量のメモリを頻繁に割り当てるプログラムは、特別にカスタマイズされたアロケータを導入すると大きなメリットが得られます。
推奨チュートリアル: 「c ビデオ チュートリアル 」
以上がアロケータの機能を簡単に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。