zoukankan      html  css  js  c++  java
  • C++标准容器库STL:map

    typedef pair<string,Student>pair_t;
    int main()
    {
        map<string,Student> mapstu;
        mapstu.insert(pair_t("2",Student("delaiwen",23)));
        mapstu.insert(pair_t("1",Student("liqin",24)));
        mapstu.insert(pair_t("5",Student("sabo",21)));
    //      插入
    //    pair<map<string,Student>::iterator,bool> pr = mapstu.insert(pair_t("3",Student("lanbo",36)));
    //    if(pr.second)     //pr.first->first  key
    //    {                 //pr.first->second  value
    //        cout<<"insert ok"<<endl;
    //        pr.first->second.showStu();
    //    }
    //    else
    //        cout<<"inset error"<<endl;
        map<string,Student>::iterator it=mapstu.begin();
    //    for(;it!=mapstu.end();it++)
    //        it->second.showStu();
    
    //    mapstu["6"] = Student("hanbin",20);//插入,如果key不存在则会插入
    //    mapstu["5"] = Student("hanbin",20);//如果key存在就会改值
    
    //      获取(查看值)
    //        mapstu.at("1").showStu();
    //        mapstu.at("1") = Student("longxia",24);//1.
    //        mapstu["1"].showStu();
    //        mapstu["1"] = Student("longxia",24);  //2.
    //    map<string,Student>::iterator it=mapstu.begin();  //3.
    //    cout<<"key"<<" "<<it->first<<" "<<"value"<<" ";
    //            it->second.showStu();
    //    it->second = Student("longxia",22);
    //        it = mapstu.find("5");    //4.通过find查找key 返回值是迭代子
    //      if(it!=mapstu.end())
    //      {   cout<<"find"<<endl;
    //        it->second.showStu();
    //      }
    //      else
    //          cout<<"not find"<<endl;
          //5.如果要通过value查找需要自己写算法
           //删除
    //        mapstu.erase("1");
    //        mapstu.erase(++mapstu.begin(),--mapstu.end());
    //        mapstu.erase(it);
    
        //边界值
    //    it=mapstu.upper_bound("2");
    //    if(it!=mapstu.end())
    //    {
    //        cout<<"find "<<"key = "<<it->first<<" value=";
    //              it->second.showStu();
    //    }
    //    it=mapstu.lower_bound("2");
    //    if(it!=mapstu.end())
    //    {
    //        cout<<"find "<<"key = "<<it->first<<" value=";
    //              it->second.showStu();
    //    }
        //      双边界查找
    //         pair<map<string,Student>::iterator ,map<string,Student>::iterator> pr= mapstu.equal_range("2");
    //         if(pr.first!=mapstu.end())
    //         {
    //             cout<<"find lower_bound"<<" key ="<<pr.first->first<<" value= ";
    //             pr.first->second.showStu();
    //         }
    //         else
    //             cout<<"not find"<<endl;
    //         if(pr.second!=mapstu.end())
    //         {
    //             cout<<"find upper_bound"<<" key ="<<pr.second->first<<" value= ";
    //             pr.second->second.showStu();
    //         }
    //         else
    //             cout<<"not find"<<endl;
    //        for_each(mapstu.begin(),mapstu.end(),showmap);
    }
    #if 0 
    map的容器特性
    1.一次存两个数据key和value,以pair的形式存在,key和value一一对应,通过key来操作value
    2.有序容器,对key进行排序
    3.不允许key重复,允许value重复
    4.增效率低,查询效率高
    
    #endif
  • 相关阅读:
    隐私政策
    .net打杂工程师的面试感想和总结
    xamarin调试android部署到模拟器错误记录:Deployment failed Mono.AndroidTools.InstallFailedException: Unexpected install output: Error: Could not access the Package Manager. Is the system running?
    C#位运算实际作用之操作整型某一位
    C#位运算实际运用之合并Int
    C#位运算基本概念与计算过程
    ajax异步请求302分析
    http与https区别
    html + css + jquery实现简单的进度条实例
    一个简单的彩色背景图形验证码
  • 原文地址:https://www.cnblogs.com/xiaozoui11cl/p/12793153.html
Copyright © 2011-2022 走看看