std:: forward_list
|
ヘッダーで定義
<forward_list>
|
||
|
template
<
class
T,
|
(1) | (C++11以降) |
|
namespace
pmr
{
template
<
class
T
>
|
(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
オブジェクトを作成および使用することが可能です。
ただし、
|
(C++26以降) |
目次 |
テンプレートパラメータ
| T | - |
要素の型。
|
||||||||||||
| 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
を破棄する
(公開メンバ関数) |
|
|
コンテナに値を代入する
(公開メンバ関数) |
|
|
コンテナに値を割り当てる
(公開メンバ関数) |
|
|
(C++23)
|
コンテナに値の範囲を割り当てる
(公開メンバ関数) |
|
関連付けられたアロケータを返す
(公開メンバ関数) |
|
要素アクセス |
|
|
最初の要素にアクセスする
(public member function) |
|
イテレータ |
|
|
先頭要素の前を指すイテレータを返す
(public member function) |
|
|
先頭を指すイテレータを返す
(公開メンバ関数) |
|
|
終端へのイテレータを返す
(公開メンバ関数) |
|
容量 |
|
|
コンテナが空かどうかをチェックする
(public member function) |
|
|
格納可能な最大要素数を返す
(公開メンバ関数) |
|
修飾子 |
|
|
内容をクリアする
(公開メンバ関数) |
|
|
要素の後に要素を挿入する
(公開メンバ関数) |
|
|
要素の直後に要素をその場で構築する
(公開メンバ関数) |
|
|
(C++23)
|
要素の後に要素の範囲を挿入する
(public member function) |
|
要素の後ろの要素を削除する
(公開メンバ関数) |
|
|
先頭に要素を挿入する
(公開メンバ関数) |
|
|
要素を先頭にその場で構築する
(公開メンバ関数) |
|
|
(C++23)
|
要素の範囲を先頭に追加する
(公開メンバ関数) |
|
先頭要素を削除する
(公開メンバ関数) |
|
|
格納されている要素の数を変更する
(公開メンバ関数) |
|
|
内容を交換する
(公開メンバ関数) |
|
演算 |
|
|
二つのソート済みリストをマージする
(公開メンバ関数) |
|
別の
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
の値を辞書順で比較する
(関数テンプレート) |
|
(C++11)
|
std::swap
アルゴリズムを特殊化する
(関数テンプレート) |
|
特定の条件を満たすすべての要素を削除する
(関数テンプレート) |
推論ガイド |
(C++17以降) |
注記
| 機能テスト マクロ | 値 | 標準 | 機能 |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | コンテナのためのレンジ構築と挿入 |
__cpp_lib_constexpr_forward_list
|
202502L
|
(C++26) |
constexpr
std::forward_list
|
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
双方向リンクリスト
(クラステンプレート) |