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つのリストの内容を交換します。