一、map    存储键值对的关联式容器

二、声明

  map<string, int> m;

三、初始化

  m["a"]=1;

  m["b"]=2;

  m["c"]=3;

三、常见函数

删                           

m.erase  ("a");              //删除单个元素

m.clear();                   //清空所有元素

查

m.emtpy();                 //判空

m.find(“a”);                   //返回a的迭代器

m.begin();                  //指向容器的第一个元素

m.end();                     //指向最后一个元素之后的位置

for (const auto& pair : m) {
  cout << pair.first << ':' << pair.second << endl;
}                                //迭代器遍历的简化

                                 

  for(map<string,int>::iterator iter=m.begin();iter!=m.end();iter++){

    cout<<iter->first<<':'<<iter->second<<endl;

  }

                           //迭代器循环遍历(只能用迭代器遍历,不能用下标遍历元素)

四、迭代器(主要用于容器遍历)

      迭代器可以被视为一个指向容器中元素的指针,但它提供了一种更抽象和安全的方式来访问和操作容器中的元素。迭代器并不是直接的地址,而是一个对象,提供了访问容器元素的功能和操作。

     1 、声明

              map<string,int>::iterator iter

     2、实例

            for(map<string,int>::iterator iter=m.begin();iter!=m.end();iter++){

    cout<<iter->first<<':'<<iter->second<<endl;

  }

六、常见实例

1、迭代器查询

for(map<string,int>::iterator iter=m.begin();iter!=m.end();iter++){
    cout<<iter->first<<':'<<iter->second<<endl;
  }

2、元素存在

 if(s.count(3)){            //s.count(x)返回x在集合中出现的次数,set中只能是0或1
    cout<<"found 3"<<endl;
  }
  else{
    cout<<"not found"<<endl;
  }

3、删除“b”的键值对

map<string,int>::iterator del=m.find("b");
  if(del!=m.end()){
    m.erase(del);
    cout<<"delete b后的数据"<<endl;
  }else{
    cout<<"not deleting b 的数据"<<endl;
  }

4、清空map容器

  m.clear();
  if(m.empty()){
    cout<<"clear success"<<endl;
  }

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐