std::list
読み:エスティーディー-リスト
外語:std::list

 標準C++ライブラリのうちSTLに含まれる、連結リストを扱うためのクラス。
目次

概要
 車輪の再発明になりがちな連結リストの機能を標準ライブラリとして提供している。
 提供されるリスト機能は、双方向リストである。

書式
 #include <list>

特徴

利点
 Cでも、LinuxFreeBSDなどのPC UNIX界隈ではstruct list_headを使った線形リスト関数がユーティリティ関数として提供されている。
 std::listは、STLであるため他のライブラリと融合性が高く、C++として違和感の無いインターフェイスが提供されている。

処理時間
 処理時間は実装に大きく依存することになる。
 (特殊なことをしていない)殆どの実装では、要素の追加、挿入、削除は、定数時間(大きさに限らず常に一定時間)で完了し、ランダムアクセス(特定の要素の検索)は線形時間(全要素数に比例する時間)を要する。

仕様

コンストラクター
 文法は次の通り。
list()空のリストを作る
list(const list &);他のlistをコピーして初期化する
explicit list(size_type size, const T& value = T())size個のvalueで初期化する
list(input_iterator start, input_iterator end)[start, end)をコピーして初期化する

演算子
list& operator=(const list& rhs)他のlistを代入(コピー)する
bool operator==(const list& lhs, const list& rhs)2つのlistが等しければtrueを返す
bool operator!=(const list& lhs, const list& rhs)2つのlistが等しくなければtrueを返す
bool operator<(const list& lhs, const list& rhs)左辺のlistが右辺のlistより小さければtrueを返す
bool operator>(const list& lhs, const list& rhs)左辺のlistが右辺のlistより大きければtrueを返す
bool operator<=(const list& lhs, const list& rhs)左辺のlistが右辺のlist以下であればtrueを返す
bool operator>=(const list& lhs, const list& rhs)左辺のlistが右辺のlist以上であればtrueを返す

メソッド
assign()シーケンスまたは特定個の要素を割り当てる
back()最終要素への参照を返す
begin()先頭を指すイテレーターを返す
clear()全ての要素を削除する
empty()リストが空ならtrueを返す
end()末尾の次を指すイテレーターを返す
erase()要素を削除する
front()先頭要素への参照を返す
get_allocator()リストのアロケーターを返す
insert()要素をリストに挿入する
max_size()リストが保持できる最大要素数を返す
merge()二つのリストを融合する
pop_back()最終要素を削除する
pop_front()先頭要素を削除する
push_back()リストの末尾に要素を追加する
push_front()リストの先頭に要素を追加する
rbegin()リスト末尾を指すリバースイテレーターを返す
remove()リストから要素を削除する
remove_if()条件に合致する要素を削除する
rend()リストの先頭を指すリバースイテレーターを返す
resize()リストのサイズを変更する
reverse()リストを反転させる
size()リスト中の要素数を返す
sort()リストをソートする
splice()リストにリストを挿入する
swap()二つのリストを入れ替える
unique()重複する要素を削除する

再検索