1。概要
百度百科の要約内容は次のとおりです。
マッピングとマルチマッピングにより、特定のタイプのキーのキー セットの存在に基づいて、タイプ T のデータを高速かつ効率的に取得できます。マップの場合、キーは単にコンテナに格納されているメンバーを指します。Map は重複キーをサポートしませんが、multimap は重複キーをサポートします。Map および multimap オブジェクトにはキーと各キーに関連する値が含まれており、キーと値のデータ型が異なるため set とは異なります。セット内のキーと値は Key タイプですが、マップ内のキーと値はペア構造の 2 つのコンポーネントです。
ヘッダーファイルを追加する
#include <map>
一般的なコンストラクターの初期化
map<string,int> m1=
{
{
"one",1},
{
"two",2},
{
"three",3},
};
2つの共通操作
最初にやるべきことはマップを横断することです
for(auto iter = m1.begin();iter!=m1.end();++iter)
{
cout << iter->first << " "<< iter->second << endl;
}
印刷機能に変更
void printMap( map<string,int> &m1)
{
for(auto iter = m1.begin();iter!=m1.end();++iter)
{
cout << iter->first << " "<< iter->second << endl;
}
}
印刷結果は次のとおりです。
one 1
three 3
two 2
挿入方法は以下の通りです。
m1.insert(pair<string,int>("four",4));
対応するキー値に対応する値を検索します。値が存在しない場合は、デフォルトで 0 が返されます。
cout << "five " << m1.find("five")->second << endl;
cout << "one " << m1.find("one")->second << endl;
count はキー値の出現回数をカウントするために使用されます。マップ内に繰り返し要素がないため、計算結果は 0 と 1 のみになります。
次のデモ コードは次のことを示しています。
map<string,int> m1=
{
{
"one",1},
{
"two",2},
{
"three",3},
{
"one",5},
};
m1.insert(pair<string,int>("four",4));
cout << "one " << m1.find("one")->second << endl;
cout << m1.count("one") << endl;
printMap(m1);
印刷結果は次のとおりです。
one 1
1
four 4
one 1
three 3
two 2
size() は、現在のコンテナのサイズをカウントするために使用されます。ベクターの他のコンテナと同様に、あまり詳しく説明しないでください。
empty() は空を判定するために使用され、1 は空、0 は空ではありません。
Erase() は、対応するキー値の内容を消去するために使用されます。
m1.erase("one");
map は演算子 [] をオーバーロードし、この [key] を使用してキー値に対応する値にすばやくアクセスできます。
int num = m1["three"];
clear ( ) ; コンテナ内のすべての要素を削除するために使用されます