The Wayback Machine - https://web.archive.org/web/20120608213413/http://ja.cppreference.com:80/w/cpp/container

C++ 標準テンプレートライブラリ

提供:cppreference.com
< cpp
移動: 案内, 検索


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のような一般的なユーティリティメソッドもいくつかあります。

個人用ツール
名前空間
変種
操作
案内
ツールボックス
他の言語