map常见的插入操作有如下几种:
#include<map>
#include<iostream>
using namespace std;
int main()
{
map<int, int> m;
m.insert(map<int,int>::value_type(1, 100)); //第一种
m.insert(pair<int,int>(2, 200)); //第二种
m.insert(make_pair(3, 300)); //第三种
m[4] = 400; //第四种
for (map<int, int>::iterator it = m.begin(); it != m.end(); it++)
{
cout << "key = "<<it->first<<" value is "<<it->second << endl;
}
}
输出如下:
下面试图改写某些value的值(在上面代码基础上修改):
#include<map>
#include<iostream>
using namespace std;
int main()
{
map<int, int> m;
m.insert(map<int,int>::value_type(1, 100)); //第一种
m.insert(pair<int,int>(2, 200)); //第二种
m.insert(make_pair(3, 300)); //第三种
m[4] = 400; //第四种
for (map<int, int>::iterator it = m.begin(); it != m.end(); it++)
{
cout << "key = "<<it->first<<" value is "<<it->second << endl;
}
cout << endl;
m.insert(make_pair(3, 500));
m[4] = 600;
for (map<int, int>::iterator it = m.begin(); it != m.end(); it++)
{
cout << "key = " << it->first << " value is " << it->second << endl;
}
}
输出如下:
用前三种方法,已经有相同的key了,无法插入,因此无法改写;而第四种相当于对之前value的一个覆盖,可以改写。