C ++ライブラリ-<リスト>
前書き
リストは、一般的に使用されるシーケンスコンテナです。コンテナは、同じタイプのデータを保持するオブジェクトです。リストコンテナは二重リンクリストとして実装されているため、データへの双方向の順次アクセスを提供します。
リストは高速ランダムアクセスを提供せず、両方向の順次アクセスのみをサポートします。リストを使用すると、シーケンス内の任意の場所に一定時間で挿入および削除操作を実行できます。
リストの要素は、メモリのさまざまなチャンクに分散させることができます。コンテナは、そのデータへの順次アクセスを可能にするために必要な情報を格納します。リストは、実行時に両端から必要に応じて縮小または拡大できます。ストレージ要件は、内部アロケーターによって自動的に満たされます。
ゼロサイズのリストも有効です。その場合、list.begin()とlist.end()は同じ場所を指します。ただし、front()またはback()を呼び出す動作は定義されていません。
定義
以下は、<list>ヘッダーファイルからのstd :: listの定義です。
template < class T, class Alloc = allocator<T> > class list;
パラメーター
T −含まれている要素のタイプ。
Tは、ユーザー定義型を含む他のデータ型に置き換えることができます。
Alloc −アロケータオブジェクトのタイプ。
デフォルトでは、アロケータクラステンプレートが使用されます。これは、最も単純なメモリ割り当てモデルを定義し、値に依存しません。
メンバータイプ
以下のメンバータイプは、パラメーターとして使用したり、メンバー関数によってタイプを返すことができます。
シニア番号 | メンバータイプ | 定義 |
---|---|---|
1 | value_type | T(テンプレートの最初のパラメーター) |
2 | allocator_type | Alloc(テンプレートの2番目のパラメーター) |
3 | 参照 | value_type& |
4 | const_reference | const value_type& |
5 | ポインター | value_type * |
6 | const_pointer | const value_type * |
7 | イテレータ | value_typeへのランダムアクセスイテレータ |
8 | const_iterator | constvalue_typeへのランダムアクセスイテレータ |
9 | reverse_iterator | std :: reverse_iterator <イテレータ> |
10 | const_reverse_iterator | std :: reverse_iterator <const_iterator> |
11 | size_type | size_t |
12 | Difference_type | ptrdiff_t |
<リスト>からの関数
以下は、<list>ヘッダーのすべてのメソッドのリストです。
コンストラクター
シニア番号 | 方法と説明 |
---|---|
1 | list :: list
デフォルトコンストラクタ 要素がゼロの空のリストを作成します。 |
2 | list :: list 塗りつぶしコンストラクター
n個の要素で新しいリストを作成し、リストの各要素にvalを割り当てます。 |
3 | list :: list 塗りつぶしコンストラクター
n個の要素で新しいリストを作成し、リストの各要素にゼロ値を割り当てます。 |
4 | list :: list 範囲コンストラクター
最初から最後までの範囲内の数の要素でリストを作成します。 |
5 | list :: list コピーコンストラクタ
既存のリストに存在する各要素のコピーを使用してリストを作成します。 |
6 | list :: list 移動コンストラクター
移動セマンティクスを使用して、他のコンテンツでリストを作成します。 |
7 | list :: list 初期化子リストコンストラクター 移動セマンティクスを使用して、他のコンテンツでリストを作成します。 |
デストラクタ
シニア番号 | 方法と説明 |
---|---|
1 | list :: 〜list
リストオブジェクトのメモリの割り当てを解除して、リストオブジェクトを破棄します。 |
メンバー関数
シニア番号 | 方法と説明 |
---|---|
1 | list :: assign 範囲バージョン 古い値を置き換えることにより、リストに新しい値を割り当てます。 |
2 | list :: assign 塗りつぶしバージョン 古い値を置き換えることにより、リストに新しい値を割り当てます。 |
3 | list :: assign イニシャライザリストバージョン 古い値を置き換えることにより、リストに新しい値を割り当てます。 |
4 | リスト::戻る
リストの最後の要素への参照を返します。 |
5 | list :: begin
リストの最初の要素を指すランダムアクセスイテレータを返します。 |
6 | list :: cbegin
リストの先頭を指す定数ランダムアクセスイテレータを返します。 |
7 | list :: cend
リストの最後を指す定数ランダムアクセスイテレータを返します。 |
8 | リスト::クリア
リストからすべての要素を削除してリストを破棄し、リストのサイズをゼロに設定します。 |
9 | list :: crbegin
リストの最後の要素を指す定数逆イテレータを返します。 |
10 | list :: crend
リストの最初の要素の前にある理論上の要素を指す定数逆イテレータを返します。 |
11 | list :: emplace
指定された位置に新しい要素を挿入してリストを拡張します。 |
12 | list :: emplace_back
リストの最後に新しい要素を挿入し、リストのサイズを1つ増やします。 |
13 | list :: emplace_front
リストの先頭に新しい要素を挿入し、リストのサイズを1つ増やします。 |
14 | リスト::空
リストが空かどうかをテストします。 |
15 | list :: end
リストの最後の要素を指すランダムアクセスイテレータを返します。 |
16 | list :: erase位置バージョン リストから単一の要素を削除します。 |
17 | list :: erase範囲バージョン リストから要素の範囲を削除します。 |
18 | リスト::フロント
リストの最初の要素への参照を返します。 |
19 | list :: get_allocator
リストに関連付けられたアロケータを返します |
20 | list :: 単一要素バージョンを挿入 リスト内の位置に新しい要素を挿入することにより、イテレータを拡張します。 |
21 | list :: insert 塗りつぶしバージョン コンテナに新しい要素を挿入してリストを拡張します。 |
22 | list :: insert 範囲バージョン コンテナに新しい要素を挿入してリストを拡張します。 |
23 | list :: insert 移動バージョン コンテナに新しい要素を挿入してリストを拡張します。 |
24 | list :: insert イニシャライザリストバージョン コンテナに新しい要素を挿入してリストを拡張します |
25 | list :: max_size
リストで保持できる要素の最大数を返します。 |
26 | list :: merge
ソートされた2つのリストを1つにマージします。 |
27 | list :: merge 比較関数 ソートされた2つのリストを1つにマージします。 |
28 | list :: merge 移動バージョン 移動セマンティクスを使用して、2つのソートされたリストを1つにマージします。 |
29 | list :: merge 比較関数移動バージョン 移動セマンティクスを使用して、2つのソートされたリストを1つにマージします。 |
30 | list :: operator = コピーバージョン 古いコンテンツを置き換えることにより、新しいコンテンツをリストに割り当てます。 |
31 | list :: operator = ムーブバージョン 古いコンテンツを置き換えて、新しいコンテンツをリストに割り当てます。 |
32 | list :: operator = 初期化子リストのバージョン 古いコンテンツを置き換えて、新しいコンテンツをリストに割り当てます。 |
33 | list :: pop_back
リストから最後の要素を削除します。 |
34 | list :: pop_front
リストから最初の要素を削除します。 |
35 | list :: push_back
リストの最後に新しい要素を挿入します。 |
36 | list :: push_back 移動バージョン リストの最後に新しい要素を挿入します。 |
37 | list :: push_front
リストの先頭に新しい要素を挿入します。 |
38 | list :: push_front 移動バージョン リストの先頭に新しい要素を挿入します。 |
39 | list :: rbegin
リストの最後の要素を指す逆イテレータを返します。 |
40 | list :: remove
値に一致する要素をリストから削除します。 |
41 | list :: remove_if
条件を満たす要素をリストから削除します。 |
42 | list :: rend
リストの逆端を指す逆イテレータを返します。 |
43 | リスト::サイズ変更
リストのサイズを変更します。 |
44 | list :: resize 値バージョン リストのサイズを変更します。 |
45 | リスト::リバース
リストに存在する要素の順序を逆にします。 |
46 | リスト::サイズ
リストに存在する要素の数を返します。 |
47 | list :: sort
リストの要素を並べ替えます。 |
48 | list :: sort 比較関数 リストの要素を並べ替えます。 |
49 | リスト::スプライス
すべての要素をリストから* thisに転送します。 |
50 | list :: splice 単一要素 イテレータiが指す要素をリストxから* thisに転送します。 |
51 | リスト::スプライス 移動バージョン 移動セマンティクスを使用して、すべての要素をリストxから* thisに転送します。 |
52 | list ::スプライス 範囲バージョン
最初から最後までの範囲の要素をxから* thisに転送します。 |
53 | list :: splice 単一要素移動バージョン 移動セマンティクスを使用して、イテレータiが指す要素をリストxから* thisに転送します。 |
54 | list ::スプライス 範囲と移動バージョン 移動セマンティクスを使用して、最初から最後までの範囲の要素をxから* thisに転送します。 |
55 | list :: swap
リストの内容を別のリストxの内容と交換します。 |
56 | list :: unique
連続するすべての重複要素をリストから削除します。 |
57 | list :: unique
連続するすべての重複要素をリストから削除します。 |
非メンバーのオーバーロードされた関数
シニア番号 | 方法と説明 |
---|---|
1 | 演算子==
2つのリストが等しいかどうかをテストします。 |
2 | 演算子!=
2つのリストが等しいかどうかをテストします。 |
3 | 演算子<
最初のリストが他のリストよりも少ないかどうかをテストします。 |
4 | 演算子<=
最初のリストが他のリスト以下であるかどうかをテストします。 |
5 | 演算子>
最初のリストが他のリストよりも大きいかどうかをテストします。 |
6 | 演算子> =
最初のリストが他のリスト以上であるかどうかをテストします。 |
7 | スワップ
2つのリストの内容を交換します。 |