map映照容器的元素数据是一个由键值和一个映照数据组成的,键值与映照数据之间具有一一映照的关系。
map映照容器的数据结构也是采用红黑树来实现的,插入元素的键值不允许重复,比较函数只对元素的键值进行比较,元素的各项数据可通过键值检索出来,由于map与set采用的都是红黑树的数据结构,所以,用法基本相似,下图是map映照容器元素的数据构成示意图;
键值 映照数据
Name Score
Jack 98.5
Bomi 96.0
Kate 97.5
map映照容器的数据结构也是采用红黑树来实现的,插入元素的键值不允许重复,比较函数只对元素的键值进行比较,元素的各项数据可通过键值检索出来,由于map与set采用的都是红黑树的数据结构,所以,用法基本相似,下图是map映照容器元素的数据构成示意图;
键值 映照数据
Name Score
Jack 98.5
Bomi 96.0
Kate 97.5
使用map容器需要头文件包含语句#include <map>,map文件也包含了对multimap多重映照容器的定义;
map创建,元素插入和遍历访问
创建map对象,键值与映照数据的类型由自己定义,在没有指定比较函数时,元素的插入位置是按键值由小到大插入到黑白树中去的,这点和set一样;
下例程序详细说明了如何操作map容器:
运行结果为:
Bomi : 96.0
Jack : 98.5
Kate : 97.5
#include <iostream>
#include <map>
using namespace std;
int main(int argc, char *argv[])
{
//定义map对象,当前没有任何元素
map <string, float> mp;
mp["Jack"] = 98.5;
mp["Bomi"] = 96.0;
mp["Kate"] = 97.5;
//前向遍历元素;
map <string, float> :: iterator it; //定义前向迭代器;
for(it