C++ map

  • 定义

    1、map是STL的一个关联容器;
    2、map提供一对一的数据处理,key-value键值对,其类型可以自己定义,第一个称为关键字,第二个为关键字的值,每个关键字只能在map中出现一次,可以修改value,而不能修改key,key 和 value可以是任意你需要的类型;
    3、map内部是自动排序的,红黑树实现;
    4、根据key值快速查找记录,查找的复杂度基本是Log(N);
  • 用法

    • 创建
      map<type1name,type2name> maps;//第一个是键的类型,第二个是值的类型
      map<string,int> maps;
      
    • 初始化
      1、直接赋值
      map[key]=value;
      
      2、用insert添加pair类型的元素
      map<string, int> m2;
      
      m2.insert({ string("abc"), 1 });
      
      m2.insert(make_pair(string("defg"), 2));
      
      m2.insert(pair<string, int>(string("hijk"), 3));
      
      m2.insert(map<int, string>::value_type(222, "pp"));
      
    • 数据遍历
      1、应用前向迭代器
      map<int, string>::iterator  iter;  
      for(iter = Test.begin(); iter != Test.end(); iter++)  
      {  
         cout<<iter->first<<"   "<<iter->second<<endl;  
      }  
      
      2、应用反相迭代器
      map<int, string>::reverse_iterator  iter;  
      for(iter = Test.rbegin(); iter != Test.rend(); iter++)  
      {  
         cout<<iter->first<<"   "<<iter->second<<endl;  
      }  
      
    • map大小
      int nSize = Test.size();
      
    • 清除map
      Test.clear();
      
    • 判空
      Test.empty()
    • 删除部分元素
      //迭代器刪除
      it = Test.find("123");
      Test.erase(it);
      
      //关键字删除
      int n = Test.erase("123"); //如果刪除了返回1,否则返回0
      
      //用迭代器范围刪除 : 把整个map清空
      Test.erase(maps.begin(), maps.end());
      //等同于Test.clear()
      
    • find() 查找一个元素
      find返回的一个迭代器,当数据出现时,它返回数据所在位置的迭代器,如果map中没有要查找的数据,它返回的迭代器等于end函数返回的迭代器
      map<string,int>::iterator it;
      it=maps.find("123");
      
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值