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の内容と交換します。 |