C ++ライブラリ-<マップ>

地図の紹介

マップはデータ構造のような辞書です。これは(キー、値)ペアのシーケンスであり、単一の値のみが各一意のキーに関連付けられます。多くの場合、連想配列と呼ばれます。

マップでは、要素の並べ替えに一般的に使用されるキー値。マップデータの場合、キーと値のタイプは異なる可能性があり、次のように表されます。

typedef pair<const Key, T> value_type;

マップは通常、二分探索木として実装されます。

ゼロサイズのマップも有効です。その場合、map.begin()とmap.end()は同じ場所を指します。

定義

以下は、<map>ヘッダーファイルからのstd :: mapの定義です。

template < class Key,
           class T,
           class Compare = less<Key>,
           class Alloc = allocator<pair<const Key,T> >
           > class map;

パラメーター

  • Key −キーのタイプ。

  • T −マップされた値のタイプ。

  • Compare − 2つの要素キーを引数として取り、boolを返すバイナリ述語。

  • Alloc −アロケータオブジェクトのタイプ。

Tは、ユーザー定義型を含む他のデータ型に置き換えることができます。

メンバータイプ

以下のメンバータイプは、パラメーターとして使用したり、メンバー関数によってタイプを返すことができます。

シニア番号 メンバータイプ 定義
1 key_type キー(テンプレートの最初のパラメーター)
2 maps_type T(テンプレートの2番目のパラメーター)
3 key_compare 比較(テンプレートの3番目のパラメーター)
4 allocator_type Alloc(テンプレートの4番目のパラメーター)
5 value_type ペア<constkey_type、mapped_type>
6 value_compare 要素を比較するための入れ子関数クラス
7 参照 allocator_type :: reference
8 const_reference allocator_type :: const_reference
9 ポインター allocator_type :: pointer
10 const_pointer allocator_type :: const_pointer
11 イテレータ value_typeへの双方向イテレータ
12 const_iterator 双方向イテレータからconstvalue_typeへ
13 reverse_iterator 逆イテレータ
14 const_reverse_iterator 一定の逆イテレータ
15 Difference_type ptrdiff_t
16 size_type size_t

<map>からの関数

以下は、<map>ヘッダーのすべてのメソッドのリストです。

コンストラクター

シニア番号 方法と説明
1 map :: mapの デフォルトコンストラクタ

要素がゼロの空のマップを作成します。

2 map :: map 範囲コンストラクタ

最初から最後までの範囲内の数の要素でマップを作成します。

3 map :: map コピーコンストラクタ

既存のマップに存在する各要素のコピーを使用してマップを作成します。

4 map :: mapmove コンストラクター

移動セマンティクスを使用して、他のコンテンツでマップを構築します。

5 map :: map 初期化子リストコンストラクター

初期化リストからマップを作成します。

デストラクタ

シニア番号 方法と説明
1 map :: 〜map

マップオブジェクトのメモリの割り当てを解除して、マップオブジェクトを破棄します。

メンバー関数

シニア番号 方法と説明
1 map :: at

キーkに関連付けられたマップされた値への参照を返します。

2 map :: begin

マップの最初の要素を参照するイテレータを返します。

3 map :: cbegin

マップの最初の要素を参照する定数イテレータを返します。

4 map :: cend

マップの最後の要素を指す定数イテレータを返します。

5 map :: clear

すべての要素を削除してマップを破棄し、マップのサイズをゼロに設定します。

6 map :: count

キーkに関連付けられたマップされた値の数を返します。

7 map :: crbegin

コンテナiの最後の要素を指す定数逆イテレータを返します。

8 map :: crend

コンテナiの最初の要素に先行する理論要素を指す定数逆イテレータを返します。

9 map :: emplace

新しい要素を挿入してコンテナを拡張します。

10 map :: emplace_hint ヒントバージョン

要素の位置としてヒントを使用して、マップに新しい要素を挿入します。

11 map :: empty

マップが空かどうかをテストします。

12 map :: end

マップ内の最後の要素を指すイテレータを返します。

13 map :: equal_range

特定のキーに一致する要素の範囲を返します。

14 map :: erase 位置バージョン

マップの単一の要素を位置から削除します。

15 map :: erase 位置バージョン

マップの単一の要素を位置から削除します。

16 map :: erase キー

キーkに関連付けられたマップ値を削除します。

17 map :: erase 範囲バージョン

マップから要素の範囲を削除します。

18 map :: erase 範囲バージョン

マップから要素の範囲を削除します。

19 map :: find

キーkに関連付けられている要素を検索します。

20 map :: get_allocator

マップに関連付けられたアロケータを返します。

21 map :: 単一の要素を挿入

マップに新しい要素を挿入してコンテナを拡張します。

22 map :: insert ヒントバージョン

マップに新しい要素を挿入してコンテナを拡張します。

23 map :: insert 範囲バージョン

マップに新しい要素を挿入してコンテナを拡張します。

24 map :: insert 移動ヒントバージョン

新しい要素を挿入してマップを拡張します。

25 map :: insert イニシャライザリストバージョン

イニシャライザリストから新しい要素を挿入してマップを拡張します。

26 map :: key_comp

キーを比較する関数オブジェクトを返します。これは、このコンテナーのコンストラクター引数compのコピーです。

27 map :: lower_bound

キーk以上の最初の要素を指すイテレータを返します。

28 map :: max_size

マップで保持できる要素の最大数を返します。

29 map :: operator = コピーバージョン

古いコンテンツを置き換えて新しいコンテンツをマップに割り当て、必要に応じてサイズを変更します。

30 map :: operator = ムーブバージョン

あるマップの内容を別のマップに移動し、必要に応じてサイズを変更します。

31 map :: operator = 初期化子リストのバージョン

初期化子リストからマップに要素をコピーします。

32 map :: operator [] コピーバージョン

キーkがコンテナ内の要素と一致する場合、メソッドは要素への参照を返します。

33 map :: operator [] ムーブバージョン

キーkがコンテナ内の要素と一致する場合、メソッドは要素への参照を返します。

34 map :: rbegin

マップの最後の要素を指す逆イテレータを返します。

35 map :: rend

マップiの逆端を指す逆イテレータを返します。

36 map :: size

マップに存在する要素の数を返します。

37 map :: swap

マップの内容をマップxの内容と交換します。

38 map :: upper_bound

キーkより大きい最初の要素を指すイテレータを返します。

39 map :: value_comp

std :: map :: value_type型のオブジェクトを比較する関数オブジェクトを返します。

非メンバーのオーバーロードされた関数

シニア番号 方法と説明
1 演算子==

2つのマップが等しいかどうかをテストします。

2 演算子!=

2つのマップが等しいかどうかをテストします。

3 演算子<

最初のマップが他のマップよりも小さいかどうかをテストします。

4 map :: operator <=

最初のマップが他のマップ以下であるかどうかをテストします。

5 演算子>

最初のマップが他のマップよりも大きいかどうかをテストします。

6 演算子> =

最初のマップが他のマップ以上であるかどうかをテストします。

7 スワップ()

マップの内容をマップxの内容と交換します。

マルチマップの概要

マルチマップは、データ構造のような辞書です。これは(キー、値)ペアのシーケンスであり、複数の値を同等のキーに関連付けることができます。多くの場合、連想配列と呼ばれます。

マルチマップでは、要素の並べ替えに一般的に使用されるキー値。マルチマップデータの場合、キーと値のタイプは異なる可能性があり、次のように表されます。

typedef pair<const Key, T> value_type;

マルチマップは通常、二分探索木として実装されます。

ゼロサイズのマルチマップも有効です。その場合、multimap.begin()とmultimap.end()は同じ場所を指します。

定義

以下は、<multimap>ヘッダーファイルからのstd :: multimapの定義です。

template < class Key,
           class T,
           class Compare = less<Key>,
           class Alloc = allocator<pair<const Key,T> >
           > class multimap;

パラメーター

  • Key −キーのタイプ。

  • T −マップされた値のタイプ。

  • Compare − 2つの要素キーを引数として取り、boolを返すバイナリ述語。

  • Alloc −アロケータオブジェクトのタイプ。

  • Tは、ユーザー定義型を含む他のデータ型に置き換えることができます。

メンバータイプ

以下のメンバータイプは、パラメーターとして使用したり、メンバー関数によってタイプを返すことができます。

シニア番号 メンバータイプ 定義
1 key_type キー(テンプレートの最初のパラメーター)
2 maps_type T(テンプレートの2番目のパラメーター)
3 key_compare 比較(テンプレートの3番目のパラメーター)
4 allocator_type Alloc(テンプレートの4番目のパラメーター)
5 value_type ペア<constkey_type、mapped_type>
6 value_compare 要素を比較するための入れ子関数クラス
7 参照 allocator_type :: reference
8 const_reference allocator_type :: const_reference
9 ポインター allocator_type :: pointer
10 const_pointer allocator_type :: const_pointer
11 イテレータ value_typeへの双方向イテレータ
12 const_iterator 双方向イテレータからconstvalue_typeへ
13 reverse_iterator 逆イテレータ
14 const_reverse_iterator 一定の逆イテレータ
15 Difference_type ptrdiff_t
16 size_type size_t

<multimap>の関数

以下は、<multimap>ヘッダーのすべてのメソッドのリストです。

コンストラクター

シニア番号 方法と説明
1 multimap :: multimap デフォルトコンストラクタ

要素がゼロの空のマルチマップを作成します。

2 multimap :: multimap 範囲コンストラクター

最初から最後までの範囲内の数の要素でマルチマップを構築します。

3 multimap :: multimap コピーコンストラクタ

既存のマルチマップに存在する各要素のコピーを使用してマルチマップを構築します。

4 multimap :: multimap 移動コンストラクター

移動セマンティクスを使用して、他のコンテンツでマルチマップを構築します。

5 multimap :: multimap 初期化子リストコンストラクター

初期化リストからマルチマップを構築します。

デストラクタ

シニア番号 方法と説明
1 multimap :: 〜multimap

マルチマップオブジェクトのメモリの割り当てを解除して、マルチマップオブジェクトを破棄します。

メンバー関数

シニア番号 方法と説明
1 multimap :: begin

マルチマップの最初の要素を参照するイテレータを返します。

2 multimap :: cbegin

マルチマップの最初の要素を参照する定数イテレータを返します。

3 multimap :: cend

マルチマップの最後の要素を指す定数イテレータを返します。

4 multimap :: clear

すべての要素を削除してマルチマップを破棄し、マルチマップのサイズをゼロに設定します。

5 multimap :: count

キーkに関連付けられたマルチマップ値の数を返します。

6 multimap :: crbegin

コンテナの最後の要素を指す定数逆イテレータを返します。

7 multimap :: crend

コンテナ内の最初の要素の前にある理論上の要素を指す定数逆イテレータを返します。

8 multimap :: emplace

新しい要素を挿入してコンテナを拡張します。

9 multimap :: emplace_hint ヒントバージョン

要素の位置としてヒントを使用して、マルチマップに新しい要素を挿入します。

10 multimap :: empty

マルチマップが空かどうかをテストします。

11 multimap :: end

マルチマップのpast-the-end要素を指すイテレータを返します。

12 multimap :: equal_range

特定のキーに一致する要素の範囲を返します。

13 multimap :: erase 位置バージョン

マルチマップの単一の要素を位置から削除します。

14 multimap :: erase 位置バージョン

マルチマップの単一の要素を位置から削除します。

15 multimap :: erase キー

キーkに関連付けられたマップ値を削除します。

16 multimap :: erase 範囲バージョン

マルチマップから要素の範囲を削除します。

17 multimap :: erase 範囲バージョン

マルチマップから要素の範囲を削除します。

18 multimap :: find

キーkに関連付けられている要素を検索します。

19 multimap :: get_allocator

マルチマップに関連付けられたアロケータを返します。

20 multimap :: insert 単一要素

マルチマップに新しい要素を挿入してコンテナを拡張します。

21 multimap :: insert ヒントバージョン

マルチマップに新しい要素を挿入してコンテナを拡張します。

22 multimap :: insert 範囲バージョン

マルチマップに新しい要素を挿入してコンテナを拡張します。

23 multimap :: insert 移動ヒントバージョン

新しい要素を挿入してマルチマップを拡張します。

24 multimap :: insert イニシャライザリストバージョン

イニシャライザリストから新しい要素を挿入することにより、マルチマップを拡張します。

25 multimap :: key_comp

キーを比較する関数オブジェクトを返します。これは、このコンテナーのコンストラクター引数compのコピーです。

26 multimap :: lower_bound

キーk以上の最初の要素を指すイテレータを返します。

27 multimap :: max_size

マルチマップで保持できる要素の最大数を返します。

28 multimap :: operator = コピーバージョン

古いコンテンツを置き換えて新しいコンテンツをマルチマップに割り当て、必要に応じてサイズを変更します。

29 multimap :: operator = ムーブバージョン

あるマルチマップの内容を別のマルチマップに移動し、必要に応じてサイズを変更します。

30 multimap :: operator = 初期化子リストのバージョン

初期化子リストからマルチマップに要素をコピーします。

31 multimap :: rbegin

マルチマップの最後の要素を指す逆イテレータを返します。

32 multimap :: rend

マルチマップの逆端を指す逆イテレータを返します。

33 multimap :: size

マルチマップに存在する要素の数を返します。

34 multimap :: swap

マルチマップの内容をマルチマップxの内容と交換します。

35 multimap :: upper_bound

キーkより大きい最初の要素を指すイテレータを返します。

36 multimap :: value_comp

std :: multimap :: value_type型のオブジェクトを比較する関数オブジェクトを返します。

非メンバーのオーバーロードされた関数

シニア番号 方法と説明
1 演算子==

2つのマルチマップが等しいかどうかをテストします。

2 演算子!=

2つのマルチマップが等しいかどうかをテストします。

3 演算子<

最初のマルチマップが他よりも小さいかどうかをテストします。

4 multimap :: operator <=

最初のマルチマップが他のマルチマップ以下であるかどうかをテストします。

5 演算子>

最初のマルチマップが他よりも大きいかどうかをテストします。

6 演算子> =

最初のマルチマップが他のマルチマップ以上であるかどうかをテストします。

7 スワップ()

マルチマップの内容をマルチマップxの内容と交換します。