C++标准容器库STL:map

2021-02-04 16:16

阅读:454

标签:有序   排序   air   def   重复   long   for_each   获取   err   

typedef pairstring,Student>pair_t;
int main()
{
    mapstring,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::iterator,bool> pr = mapstu.insert(pair_t("3",Student("lanbo",36)));
//    if(pr.second)     //pr.first->first  key
//    {                 //pr.first->second  value
//        cout//        pr.first->second.showStu();
//    }
//    else
//        cout
    mapstring,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::iterator it=mapstu.begin();  //3.
//    coutfirst//            it->second.showStu();
//    it->second = Student("longxia",22);
//        it = mapstu.find("5");    //4.通过find查找key 返回值是迭代子
//      if(it!=mapstu.end())
//      {   cout//        it->second.showStu();
//      }
//      else
//          cout//5.如果要通过value查找需要自己写算法
       //删除
//        mapstu.erase("1");
//        mapstu.erase(++mapstu.begin(),--mapstu.end());
//        mapstu.erase(it);

    //边界值
//    it=mapstu.upper_bound("2");
//    if(it!=mapstu.end())
//    {
//        coutfirst//              it->second.showStu();
//    }
//    it=mapstu.lower_bound("2");
//    if(it!=mapstu.end())
//    {
//        coutfirst//              it->second.showStu();
//    }
    //      双边界查找
//         pair::iterator ,map::iterator> pr= mapstu.equal_range("2");
//         if(pr.first!=mapstu.end())
//         {
//             coutfirst//             pr.first->second.showStu();
//         }
//         else
//             cout//         if(pr.second!=mapstu.end())
//         {
//             coutfirst//             pr.second->second.showStu();
//         }
//         else
//             cout//        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

 

C++标准容器库STL:map

标签:有序   排序   air   def   重复   long   for_each   获取   err   

原文地址:https://www.cnblogs.com/xiaozoui11cl/p/12793153.html


评论


亲,登录后才可以留言!