std::forward_list
提供: cppreference.com
ヘッダ <forward_list> で定義
|
||
template< class T, |
(1) | (C++11以上) |
namespace pmr { template <class T> |
(2) | (C++17以上) |
std::forward_list
はコンテナ内のあらゆる位置への高速な挿入と削除をサポートするコンテナです。 高速なランダムアクセスはサポートされません。 このコンテナは片方向連結リストとして実装され、本質的に C で実装した場合と比較していかなるオーバーヘッドもありません。 std::list と比較すると、このコンテナは双方向のイテレーションが必要ないため、より空間効率の良い記憶域を提供します。
リスト内の要素の追加、削除、移動、またはいくつかのリストを横断するそれらの操作は、リスト中の他の要素を現在参照しているイテレータを無効化しません。 しかし、 (erase_after を用いて) リストから要素が削除される場合、対応する要素を参照するイテレータや参照は無効化されます。
std::forward_list
は (size メンバ関数と operator==
の計算量が常に線形時間であることを除いて) Container, AllocatorAwareContainer, SequenceContainer の要件を満たします。
目次 |
[編集] テンプレート引数
T | - | 要素の型。
| ||||
Allocator | - | メモリを確保/解放したり、そのメモリに要素を構築/破棄したりするために使用されるアロケータ。 この型は Allocator の要件を満たさなければなりません。 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 |
const_iterator
|
const LegacyForwardIterator |
[編集] メンバ関数
forward_list を構築します (パブリックメンバ関数) | |
forward_list を破棄します (パブリックメンバ関数) | |
コンテナに値を代入します (パブリックメンバ関数) | |
コンテナに値を代入します (パブリックメンバ関数) | |
関連付けられているアロケータを返します (パブリックメンバ関数) | |
要素アクセス | |
最初の要素にアクセスします (パブリックメンバ関数) | |
イテレータ | |
先頭の前の要素を指すイテレータを返します (パブリックメンバ関数) | |
先頭を指すイテレータを返します (パブリックメンバ関数) | |
終端を指すイテレータを返します (パブリックメンバ関数) | |
容量 | |
コンテナが空かどうか調べます (パブリックメンバ関数) | |
可能な最大の要素数を返します (パブリックメンバ関数) | |
変更 | |
すべての要素を削除します (パブリックメンバ関数) | |
要素の後に要素を挿入します (パブリックメンバ関数) | |
要素の後に要素を直接構築します (パブリックメンバ関数) | |
要素の後の要素を削除します (パブリックメンバ関数) | |
要素を先頭に挿入します (パブリックメンバ関数) | |
要素を先頭にその場で構築します (パブリックメンバ関数) | |
最初の要素を削除します (パブリックメンバ関数) | |
格納されている要素の数を変更します (パブリックメンバ関数) | |
(C++11) |
内容を入れ替えます (パブリックメンバ関数) |
操作 | |
ソートされた2つのリストをマージします (パブリックメンバ関数) | |
別の forward_list から要素を移動します (パブリックメンバ関数) | |
特定の基準を満たす要素を削除します (パブリックメンバ関数) | |
要素の順序を反転します (パブリックメンバ関数) | |
連続した重複要素を削除します (パブリックメンバ関数) | |
要素をソートします (パブリックメンバ関数) |
[編集] 非メンバ関数
(C++20で削除)(C++20で削除)(C++20で削除)(C++20で削除)(C++20で削除)(C++20) |
forward_list 内の値を辞書的に比較します (関数テンプレート) |
(C++11) |
std::swap アルゴリズムの特殊化 (関数テンプレート) |
特定の基準を満たすすべての要素を削除します (関数テンプレート) |