map的运用

一、map是一种关联容器,支持高效的查找和访问

map中的元素是一些关键字-值(key-value)对:

  关键字起索引作用;

  值表示与索引相关联的数据。

关联容器中元素是根据关键字存储的,故其不支持位置相关的操作。

在map中的关键字必须是唯一的,而在multimap中,则允许多个元素具有相同的关键字。

 

二、当从map中提取一个元素时,会得到一个pair类型的对象

map<string, int> word_count = {{"andy", 1}, {"tom", 1}};	
for(pair<string, int> w : word_count)
	cout << w.first << " occurs " << w.second << " time(s)" << endl; 

pair是一个模板类型,保存两个名为 first 和 second 的公有数据成员。map所使用的pair用first成员保存关键字,用second成员保存对应的值。

如:对于“auto map_it = word_count.begin();”,map_it为关联容器的迭代器,但*map_it是指向一个pair<string, int>对象的引用。

 

三、可以改变map的元素(pair)的值,但不能改变关键字成员的值

map类型的元素是pair<const KeyType, MappedType>类型。

 

posted @ 2018-09-07 20:53  GGBeng  阅读(204)  评论(0编辑  收藏  举报