map的4种常见的插入元素的方式及区别

来源:互联网 发布:网络司法拍卖佣金 编辑:程序博客网 时间:2024/06/06 02:57

#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种方法,插入重复将会覆盖原有的值。

0 0
原创粉丝点击