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返回是否插入了该元素;