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;
    }
  • 相关阅读:
    ASP.NET 动态创建文本框 TextBox (add TextBox to page dynamically)
    SQL Server 行列转换
    NPOI把Excel导入到数据库
    Net操作Excel(终极方法NPOI)
    mongdo通用类(C#版)
    ORACLE 定时执行存储过程
    C# Excel导入、导出
    网络爬虫+HtmlAgilityPack+windows服务从博客园爬取20万博文
    Git初级使用教程
    asp.net+swfupload 多图片批量上传(附源码下载)
  • 原文地址:https://www.cnblogs.com/leijiangtao/p/12057165.html
Copyright © 2011-2022 走看看