zoukankan      html  css  js  c++  java
  • stl中map的四种插入方法总结

    stl中map的四种插入方法总结
    方法一:pair
    例:
    map<int, string> mp;
    mp.insert(pair<int,string>(1,"aaaaa"));

    方法二:make_pair
    例:
    map<int, string> mp;
    mp.insert(make_pair<int,string>(2,"bbbbb"));

    方法三:value_type
    例:
    map<int, string> mp;
    mp.insert(map<int, string>::value_type(3,"ccccc"));

    方法四:[]
    例:
    map<int, string> mp;
    mp[4] = "ddddd";

    四种方法异同:
    前三种方法当出现重复键时,编译器会报错,而第四种方法,当键重复时,会覆盖掉之前的键值对。

    综合测试:

    #include<iostream>
    #include<map>
    using namespace std;
     
    int main()
    {
        map<int, string> mp;
        //map的插入方法有4种
        //insert返回值为pair   原型:typedef pair<iterator, bool> _Pairib
        //方法1.pair     在插入重复键的情况下前三种方法类似,这里只测试第一种
        pair<map<int,string>::iterator, bool> pair1 = mp.insert(pair<int,string>(1,"aaaaa11111"));
        if (pair1.second == true)
        {
            cout<< "插入成功" <<endl;
        }
        else
        {
            cout<< "插入失败" <<endl;
        }
     
        pair<map<int,string>::iterator, bool> pair2 = mp.insert(pair<int,string>(1,"aaaaa22222"));
        if (pair2.second == true)
        {
            cout<< "插入成功" <<endl;
        }
        else
        {
            cout<< "插入失败" <<endl;
        }
        //方法2.make_pair
        mp.insert(make_pair<int,string>(3,"bbbbb33333"));
        mp.insert(make_pair<int,string>(4,"bbbbb44444"));
     
        //方法3.value_type
        mp.insert(map<int, string>::value_type(5,"ccccc55555"));
        mp.insert(map<int, string>::value_type(6,"ccccc66666"));
     
        //方法4.[]
        mp[7] = "ddddd77777";
        mp[7] = "ddddd88888";
     
        for (map<int,string>::iterator it = mp.begin(); it != mp.end(); it++)
        {
            cout<< it->first << "	" << it->second <<endl;
        }
        cout<< "--------------------------------" <<endl;
        //删除
        while(!mp.empty())
        {
            map<int,string>::iterator it = mp.begin();
            cout<< it->first << "	" << it->second <<endl;
            mp.erase(it);
        }
     
        return 0;
    }
  • 相关阅读:
    vue Ant Design 树形控件拖动限制
    defineProperty介绍及使用
    webpack 配置入门
    vscode 插件
    解决输入框自动填充账号密码的问题
    css 动画
    vue按钮权限控制
    git操作
    TCP和UDP的区别
    通信协议 HTTP TCP UDP
  • 原文地址:https://www.cnblogs.com/leijiangtao/p/12057165.html
Copyright © 2011-2022 走看看