C++ map

C++ map,第1张

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/564708.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-06
下一篇 2022-04-06

发表评论

登录后才能评论

评论列表(0条)

保存