C++ 標準テンプレートライブラリ
C++ STL (標準テンプレートライブラリ)はクラステンプレートとアルゴリズムの標準コレクションであり、プログラマが容易にキュー、リスト、スタックというような標準的なデータ構造を実装することを可能にします。
目次 |
[編集] STL コンテナ
C++ STLでは2種類のコンテナを提供します:
- シーケンスコンテナ
- 連想コンテナ
さらにC++標準ライブラリではいくつかのSTLではないコンテナを提供しています。それらはコンテナの様に捉えることもできますか、STLコンテナのすべての要件を満たしているわけではありません。
- コンテナアダプタ
- その他
C++ STLの背景にある思想は、複雑なデータ構造を使う際の難しい部分は既に実装済みであるという点です。
もしプログラマが整数のスタックを使いたければ、次のコードを書くだけでよいのです。
stack<int> myStack;
最小限の努力で、このスタックに対して整数を jp/stl/stack/pushや jp/stl/stack/popできるのです。 C++テンプレートの魔法によって、整数だけでなくすべてのデータ型を使うことができます。 STLスタッククラスによってスタック内のデータに関係なく、一般的なスタックの機能を利用することができます。
[編集] アルゴリズム
上記に加え、STLでは多くの便利な アルゴリズムも提供しています。--例えば jp/stl/algorithm/binary_search、 jp/stl/algorithm/sort、 jp/stl/algorithm/for_eachなどがあり、 これらは様々なコンテナやデータ構造において使うことができます。
[編集] イテレータ
jp/stl/iterators STLコンテナや他のデータ構造に対してイテレーションを可能にします。
[編集] 関数オブジェクト
<functional> ヘッダファイルでは関数オブジェクトや関数アダプタを定義しています。
[編集] メモリ
<memory> ヘッダファイルでは jp/stl/memory/auto_ptrのような簡素なメモリ管理構造を提供しています。
[編集] ユーティリティ
<utility> ヘッダファイル内の jp/stl/utility/make_pairのような一般的なユーティリティメソッドもいくつかあります。

