#include <iostream>
using namespace std;
#include <string>
#include <map>
map<int,string> mp;
void showMap()
{
cout<<"\n遍历结果:"<<endl;
for(map<int,string>::iterator iter = mp.begin();iter != mp.end(); ++iter)
{
cout<<iter->first<<" - "<<iter->second<<endl;
}
cout<<endl;
}
int main()
{
pair<map<int,string>::iterator,bool> myPair;//保存insert()的返回值
//方法[1]
myPair = mp.insert(pair<int,string> (1,"student01"));
if(true == myPair.second)
{
cout<<"插入("<<myPair.first->first<<","<<myPair.first->second<<")成功."<<endl;
}
else
{
cout<<"插入失败! 对应的key值: "<<myPair.first->first<<endl;
}
//方法[2]
myPair = mp.insert(make_pair(2,"student02"));
myPair = mp.insert(make_pair(2,"student22"));//插入失败,不会产生覆盖
if(true == myPair.second)
{
cout<<"插入("<<myPair.first->first<<","<<myPair.first->second<<")成功."<<endl;
}
else
{
cout<<"插入失败! 对应的key值: "<<myPair.first->first<<endl;
}
//方法[3]
myPair = mp.insert(map<int,string>::value_type(3,"student03"));
//方法[4]
mp[4] = "student04";
mp[4] = "student44";//覆盖
showMap();
return 0;
}
程序运行结果:
前3种方法,采用的是insert()方法,该方法返回的是pair<iterator,bool>,进行重复插入时,插入失败,不会产生覆盖;
第4种方法,插入重复将会覆盖原有的值。