名前空間
変種
操作

std::forward_list

提供: cppreference.com
< cpp‎ | container
 
 
 
 
ヘッダ <forward_list> で定義
template<

    class T,
    class Allocator = std::allocator<T>

> class forward_list;
(1) (C++11以上)
namespace pmr {

    template <class T>
    using forward_list = std::forward_list<T, std::pmr::polymorphic_allocator<T>>;

}
(2) (C++17以上)

std::forward_list はコンテナ内のあらゆる位置への高速な挿入と削除をサポートするコンテナです。 高速なランダムアクセスはサポートされません。 このコンテナは片方向連結リストとして実装され、本質的に C で実装した場合と比較していかなるオーバーヘッドもありません。 std::list と比較すると、このコンテナは双方向のイテレーションが必要ないため、より空間効率の良い記憶域を提供します。

リスト内の要素の追加、削除、移動、またはいくつかのリストを横断するそれらの操作は、リスト中の他の要素を現在参照しているイテレータを無効化しません。 しかし、 (erase_after を用いて) リストから要素が削除される場合、対応する要素を参照するイテレータや参照は無効化されます。

std::forward_list は (size メンバ関数と operator== の計算量が常に線形時間であることを除いて) Container, AllocatorAwareContainer, SequenceContainer の要件を満たします。

目次

[編集] テンプレート引数

T - 要素の型。
要素に課される要件はコンテナに対して実際に行われる操作によります。 一般的には、要素型は完全型であることが要求され、 Erasable の要件を満たさなけれ��なりませんが、使用するメンバ関数によってはさらに厳しい要件が課されます。 (C++17未満)
要素に課される要件はコンテナに対して実際に行われる操作によります。 一般的には、要素型は Erasable の要件を満たさなければなりませんが、使用するメンバ関数によってはさらに厳しい要件が課されます。 アロケータがアロケータの完全性の要件を満たす場合、要素型が不完全でもこのコンテナを実体化できます (しかしそのメンバはできません)。 (C++17以上)

[edit]

Allocator - メモリを確保/解放したり、そのメモリに要素を構築/破棄したりするために使用されるアロケータ。 この型は Allocator の要件を満たさなければなりません。 Allocator::value_typeT が同じでない場合、動作は未定義です。 [edit]

[編集] メンバ型

メンバ型 定義
value_type T [edit]
allocator_type Allocator [edit]
size_type 符号なし整数型 (通常 std::size_t) [edit]
difference_type 符号付き整数型 (通常 std::ptrdiff_t) [edit]
reference value_type& [edit]
const_reference const value_type& [edit]
pointer std::allocator_traits<Allocator>::pointer [edit]
const_pointer std::allocator_traits<Allocator>::const_pointer [edit]
iterator LegacyForwardIterator [edit]
const_iterator const LegacyForwardIterator [edit]

[編集] メンバ関数

forward_list を構築します
(パブリックメンバ関数) [edit]
forward_list を破棄します
(パブリックメンバ関数) [edit]
コンテナに値を代入します
(パブリックメンバ関数) [edit]
コンテナに値を代入します
(パブリックメンバ関数) [edit]
関連付けられているアロケータを返します
(パブリックメンバ関数) [edit]
要素アクセス
最初の要素にアクセスします
(パブリックメンバ関数) [edit]
イテレータ
先頭の前の要素を指すイテレータを返します
(パブリックメンバ関数) [edit]
先頭を指すイテレータを返します
(パブリックメンバ関数) [edit]
終端を指すイテレータを返します
(パブリックメンバ関数) [edit]
容量
コンテナが空かどうか調べます
(パブリックメンバ関数) [edit]
可能な最大の要素数を返します
(パブリックメンバ関数) [edit]
変更
すべての要素を削除します
(パブリックメンバ関数) [edit]
要素の後に要素を挿入します
(パブリックメンバ関数) [edit]
要素の後に要素を直接構築します
(パブリックメンバ関数) [edit]
要素の後の要素を削除します
(パブリックメンバ関数) [edit]
要素を先頭に挿入します
(パブリックメンバ関数) [edit]
要素を先頭にその場で構築します
(パブリックメンバ関数) [edit]
最初の要素を削除します
(パブリックメンバ関数) [edit]
格納されている要素の数を変更します
(パブリックメンバ関数) [edit]
(C++11)
内容を入れ替えます
(パブリックメンバ関数) [edit]
操作
ソートされた2つのリストをマージします
(パブリックメンバ関数) [edit]
別の forward_list から要素を移動します
(パブリックメンバ関数) [edit]
特定の基準を満たす要素を削除します
(パブリックメンバ関数) [edit]
要素の順序を反転します
(パブリックメンバ関数) [edit]
連続した重複要素を削除します
(パブリックメンバ関数) [edit]
要素をソートします
(パブリックメンバ関数) [edit]

[編集] 非メンバ関数

(C++20で削除)(C++20で削除)(C++20で削除)(C++20で削除)(C++20で削除)(C++20)
forward_list 内の値を辞書的に比較します
(関数テンプレート) [edit]
std::swap アルゴリズムの特殊化
(関数テンプレート) [edit]
特定の基準を満たすすべての要素を削除します
(関数テンプレート) [edit]

[編集] 推定ガイド(C++17以上)