map

https://blog.csdn.net/u014465639/article/details/70241850

https://blog.csdn.net/wallwind/article/details/6876892

https://blog.csdn.net/ajianyingxiaoqinghan/article/details/78540736  https://blog.csdn.net/ajianyingxiaoqinghan/article/details/78542932

添加元素有两种方法:

1、先用下标操作符获取元素,然后给获取的元素赋值;

mymap['a'] = 10;//并不要求mymap中已经存在键‘a’;

2、使用insert成员函数实现
下标操作添加元素:如果该键已在容器中,则 map 的下标运算与 vector 的下标运算行为相同:返回该键所关联的值。只有在所查找的键不存在时,map 容器才为该键创建一个新的元素,并将它插入到此 map 对象中。此时,所关联的值采用值初始化:类类型的元素用默认构造函数初始化,而内置类型的元素初始化为 0。

key与value获取:

int key = iter_map->first;             //取得key

string value = iter_map->second;       //取得value

函数:

insert()

返回类型:pair<map<string, int>::iterator, bool>

insert的返回值:包含一个迭代器和一个bool值的pair对象,其中迭代器指向map中具有相应键的元素,而bool值则表示是否插入了该元素;

如果该键已在容器中,则其关联的值保持不变,返回的bool值为false;

在这两种情况下,迭代器都将指向具有给定键的元素;

word_count.insert(map<string, int>::value_type("Anna", 1));
word_count.insert(make_pair("Anna", 2));//返回false,且键值仍为1.
word_count["Anna"] = 2;//键值变为2
例2:

pair<map<string, int>::iterator, bool> ret = word_count.insert(make_pair(word, 1));

ret存储insert函数返回的pair对象。该pair的first成员是一个map迭代器,指向插入的键;
ret.first从insert返回的pair对象中获取 map 迭代器;ret.second从insert返回是否插入了该元素;

 

posted @ 2018-12-14 21:31  kuaqi  阅读(161)  评论(0编辑  收藏  举报