template
<
class
T,
class
Allocator
=
std::
allocator
<
T
>
>
class
forward_list
;
|
(1)
|
(C++11以降)
|
|
|
(2)
|
(C++17以降)
|
|
|
|
|
std::forward_list
は、コンテナ内の任意の位置からの要素の高速な挿入と削除をサポートするコンテナです。高速なランダムアクセスはサポートされていません。単方向リンクリストとして実装されています。
std::list
と比較して、双方向イテレーションが必要ない場合、このコンテナはより空間効率の高いストレージを提供します。
リスト内、または複数のリスト間での要素の追加、削除、移動は、現在リスト内の他の要素を指しているイテレータを無効化しません。ただし、対応する要素がリストから削除されると(
erase_after
経由で)、その要素を参照するイテレータまたは参照は無効化されます。
std::forward_list
は、
Container
の要件(
size
メンバ関数および
operator==
の計算量が常に線形であることを除く)、
AllocatorAwareContainer
および
SequenceContainer
の要件を満たします。
std::forward_listのすべてのメンバー関数は
std::forward_list
です:定数式の評価において
std::forward_list
オブジェクトを作成および使用することが可能です。
ただし、
std::forward_list
オブジェクトは一般的に
constexpr
にはできません。なぜなら、動的に確保されたストレージは同じ定数式の評価内で解放されなければならないためです。
|
(C++26以降)
|
|
目次
テンプレートパラメータ
|
T
|
-
|
要素の型。
|
要素に課せられる要件は、コンテナで実際に実行される操作に依存する。一般的には、要素型が完全型であり、
Erasable
の要件を満たすことが要求されるが、多くのメンバ関数はより厳格な要件を課す。
|
(C++17まで)
|
|
要素に課せられる要件は、コンテナで実際に実行される操作に依存する。一般的には、要素型が
Erasable
の要件を満たすことが要求されるが、多くのメンバ関数はより厳格な要件を課す。アロケータが
アロケータ完全性要件
を満たす場合、このコンテナ(そのメンバではない)は不完全な要素型でインスタンス化できる。
|
(C++17以降)
|
|
|
Allocator
|
-
|
メモリの取得/解放およびそのメモリ内の要素の構築/破棄に使用されるアロケータ。この型は
Allocator
の要件を満たさなければならない。
動作は未定義
(C++20まで)
プログラムは不適格
(C++20以降)
である(
Allocator::value_type
が
T
と同じでない場合)。
|
メンバ型
| メンバ型
|
定義
|
value_type
|
T
|
allocator_type
|
Allocator
|
size_type
|
符号なし整数型 (通常 std::size_t)
|
difference_type
|
符号付き整数型 (通常 std::ptrdiff_t)
|
reference
|
value_type&
|
const_reference
|
const value_type&
|
pointer
|
std::allocator_traits<Allocator>::pointer
|
const_pointer
|
std::allocator_traits<Allocator>::const_pointer
|
iterator
|
LegacyForwardIterator と ConstexprIterator (C++26 以降) へ value_type
|
const_iterator
|
LegacyForwardIterator と ConstexprIterator (C++26 以降) へ const value_type
|
メンバー関数
|
|
forward_listを構築する
(公開メンバ関数)
|
|
|
forward_listを破棄する
(公開メンバ関数)
|
|
|
コンテナに値を代入する
(公開メンバ関数)
|
|
|
コンテナに値を割り当てる
(公開メンバ関数)
|
|
|
コンテナに値の範囲を割り当てる
(公開メンバ関数)
|
|
|
関連付けられたアロケータを返す
(公開メンバ関数)
|
要素アクセス
|
|
|
最初の要素にアクセスする
(public member function)
|
イテレータ
|
|
|
先頭要素の前を指すイテレータを返す
(public member function)
|
|
|
先頭を指すイテレータを返す
(公開メンバ関数)
|
|
|
終端へのイテレータを返す
(公開メンバ関数)
|
容量
|
|
|
コンテナが空かどうかをチェックする
(public member function)
|
|
|
格納可能な最大要素数を返す
(公開メンバ関数)
|
修飾子
|
|
|
内容をクリアする
(公開メンバ関数)
|
|
|
要素の後に要素を挿入する
(公開メンバ関数)
|
|
|
要素の直後に要素をその場で構築する
(公開メンバ関数)
|
|
|
要素の後に要素の範囲を挿入する
(public member function)
|
|
|
要素の後ろの要素を削除する
(公開メンバ関数)
|
|
|
先頭に要素を挿入する
(公開メンバ関数)
|
|
|
要素を先頭にその場で構築する
(公開メンバ関数)
|
|
|
要素の範囲を先頭に追加する
(公開メンバ関数)
|
|
|
先頭要素を削除する
(公開メンバ関数)
|
|
|
格納されている要素の数を変更する
(公開メンバ関数)
|
|
|
内容を交換する
(公開メンバ関数)
|
演算
|
|
|
二つのソート済みリストをマージする
(公開メンバ関数)
|
|
|
別の
forward_list
から要素を転送する
(公開メンバ関数)
|
|
|
特定の条件を満たす要素を削除する
(公開メンバ関数)
|
|
|
要素の順序を反転する
(公開メンバ関数)
|
|
|
連続する重複要素を削除する
(公開メンバー関数)
|
|
|
要素をソートする
(公開メンバ関数)
|
非メンバー関数
(C++11)
(C++11)
(C++20で削除)
(C++11)
(C++20で削除)
(C++11)
(C++20で削除)
(C++11)
(C++20で削除)
(C++11)
(C++20で削除)
(C++20)
|
2つのforward_listの値を辞書順で比較する
(関数テンプレート)
|
|
|
std::swap
アルゴリズムを特殊化する
(関数テンプレート)
|
|
|
特定の条件を満たすすべての要素を削除する
(関数テンプレート)
|
注記
例
関連項目
|