【STL】14 map容器

【STL】14 map容器

【STL】14 map容器

 

 

#include<iostream>
#include<map>
using namespace std;

//map初始化 
void test01(){
    
    //map容器模板参数,第一个参数key的类型,第二个参数的类型 
    map<int,int> mymap;
    
    //插入数据 pair.first = key 值, pair.second = value值
    //第一种
    pair<map<int,int>::iterator,bool> ret = mymap.insert(pair<int,int>(10,10));
    if(ret.second){
        cout<<"插入成功"<<endl;
    }
    else{
        cout<<"插入失败"<<endl;
    }
    ret = mymap.insert(pair<int,int>(10,20));   //再次插入key值相同的元素,则会插入失败 
    if(ret.second){
        cout<<"插入成功"<<endl;
    }
    else{
        cout<<"插入失败"<<endl;
    }
    //第二种
    mymap.insert(make_pair(20,20));
    //第三种
    mymap.insert(map<int,int>::value_type(30,30));
    //第四种 
    mymap[40]=40;
    
    //打印
    for(map<int,int>::iterator i = mymap.begin();i!=mymap.end();i++){
        //  *i  取出来的是一个pair 
        cout<<"key:"<<(*i).first<<" "<<"value:"<<(*i).second<<endl; 
    }
    cout<<endl;
     
    //如果插入的key不存在,则创建pair到map容器中
    //如果发现插入的key存在,那么会更新key对应的value 
    mymap[10]=20;  
    mymap[50]=50;
    //打印
    for(map<int,int>::iterator i = mymap.begin();i!=mymap.end();i++){
        //  *i  取出来的是一个pair 
        cout<<"key:"<<(*i).first<<" "<<"value:"<<(*i).second<<endl; 
    }
    cout<<endl;
    
    //如果通过【】方式去访问map一个不存在的key
    //那么map会将这个访问的key插入到map中,并且给value一个默认值 
    cout<<"map[60]:"<<mymap[60]<<endl;
    //打印
    for(map<int,int>::iterator i = mymap.begin();i!=mymap.end();i++){
        //  *i  取出来的是一个pair 
        cout<<"key:"<<(*i).first<<" "<<"value:"<<(*i).second<<endl; 
    }
    cout<<endl;
    
    
        
}

int main(){
    test01();
    return 0;
}