STLマップ/マルチマップの簡単な紹介

マップの概要/マルチマップ
マップは、標準の連想コンテナです。マップに格納される要素は、(キー、値)キーと値のペアと呼ばれるキーと値のペアのシーケンスです。キーに基づいてデータをすばやく取得する機能を提供します。(これは、宅配便番号を保持し、宅配便を受け取るようなものです)
ここに画像の説明を挿入
例:

#include <iostream>
#include <functional>
#include <algorithm>
#include <map>
#include <string>

using namespace std;

int main()
{
	map<int, string> mapStu;

	mapStu.insert(pair<int, string>(1, "张三"));
	mapStu.insert(pair<int, string>(2, "李四"));
	mapStu.insert(pair<int, string>(3, "王五"));

	mapStu[4] = "赵六";

	for(map<int, string>::iterator it = mapStu.begin(); it != mapStu.end(); it++)
	{
		cout<<"key: "<<(*it).first<<" value: "<<(*it).second<<endl;
	}

	system("pause");
	return 0;
}

動作環境:vc ++ 2010学習バージョン
動作結果:
ここに画像の説明を挿入

1)マップのキー値は一意です。コレクション内の要素は特定の順序で配置されます。要素挿入処理は、ソートルールに従って挿入されるため、挿入位置の指定はできません。
2)マップの最下層の特定の実装は、赤黒木バリアントを使用したバランスのとれた二分木のデータ構造です。挿入操作、削除操作、および取得操作は、ベクターよりもはるかに高速です。
3)マップはキーに対応する値に直接アクセスでき、マップ[キー] =値などの[]演算子をサポートします。

マルチマップとマップの違い:
マップは一意のキー値をサポートし、各キーは1回だけ出現でき、マルチマップ内の同じキーは複数回出現できます。マルチマップは[]演算子をサポートしていません。

例:

#include <iostream>
#include <functional>
#include <algorithm>
#include <map>
#include <string>

using namespace std;

int main()
{
	multimap<int, string> mapStu;

	mapStu.insert(pair<int, string>(1, "张三"));
	mapStu.insert(pair<int, string>(2, "李四"));
	mapStu.insert(pair<int, string>(3, "王五"));

	//multimap 不支持[]操作, map支持
	//mapStu[4] = "赵六";

	//multimap 支持相同的key 插入
	mapStu.insert(pair<int, string>(3, "小王五"));

	for(multimap<int, string>::iterator it = mapStu.begin(); it != mapStu.end(); it++)
	{
		cout<<"key: "<<(*it).first<<" value: "<<(*it).second<<endl;
	}

	system("pause");
	return 0;
}

動作環境:vc ++ 2010学習バージョン
動作結果:
ここに画像の説明を挿入

オリジナルの記事を14件公開 いいね1 訪問数119

おすすめ

転載: blog.csdn.net/m0_45867846/article/details/105464103