很早之前看过map的用法,大致会用,后来学了数据结构,我告诉自己,会map了,,,某场面试,面试官的一个问题,让我emm…,anyway,既然有不足,就查缺补漏~
1.问题:当map插入数据时,如果key值相同,value值是覆盖么?
答:如果key在map里面有的话,不会覆盖之前的value,一般先判断之前有没有数据(见4.),有的话,先删除,再去添加。还有一种方法,可以通过value = map[key],利用[]=来实现覆盖,进行数据的更新。
2.代码:
#include <iostream>
#include <string>
#include <map>
using namespace std;
/* 测试map的插入覆盖特性*/
int main()
{
map<int, string> m;
m.insert(make_pair(1, "Lixin1"));
m.insert(pair<int, string>(2, "Lixin2"));
m.insert(pair<int, string>(3, "Lixin3"));
cout << "befor insert key=1, value = " << m[1] <