STL容器之map映射(c++详细版)

4 篇文章 0 订阅

map

键值对映射map是由键key和值value构成的一对单元,其中key value可以是任意的数据类型。map通过建立一颗红黑树(平衡二叉树)来实现对数据自动排序的功能,从而达到高效查询和检索的目的。c++ map类似于python里面的字典

键值对映射map被包含在map头文件中

1 定义和初始化

(1) 基本定义和初始化

map<int,string> mp; //定义一个空的string->int的映射
mp[1] = "wcm";
mp[2] = "我喜欢你"

(2 )使用insert函数初始化

map<string,int> mp; //定义一个空的string->int的映射
mp.insert(make_pair(1,"hello"));

(3) 初始化列表的方式:

map<int,string> mp = {{1,"wcm"},{2,"我喜欢你"}};

2 插入元素

可以使用insert函数或者使用[]操作符来赋值

mp.insert(make_pair(1,"hello"));
mp[2] = "you";

3 访问和遍历元素

你可以通过键直接访问元素的值,这可以通过[]或者find实现:

// 1 通过键直接访问 
    map<string,int> mp = {{"wcm",520},{"wmk"},999};
cout<<mp["wcm"]<<endl;//输出的是520;

// 2 通过find访问
auto it = mp.find("wmk");
if(it!= mp.end())
   cout<<it->first<<' '<<it->second<<endl;//输出的是 wmk 999

// 3 键值对映射的遍历可以通过迭代器的方式
for(map<char, int>::iterator it=mp.begin();it!=mp.end();it++)
    cout<<it->first<<" "<<it->second;

4 删除元素

可以通过erase()函数来删除指定键的元素

// 方式一:通过key键删除,方便实用
mp.erase("wmk");//删掉键为wmk的元素

// 方式二:通过迭代器指针的方式删除
map<char, int>::iterator it=mp.begin();
mp.erase(it);

5 是否存在

若要检查是否存在某个键,可以使用count或find()函数。如果键存在,count()将返回1,否则返回0。find()返回指向元素的迭代器,不存在则返回mp.end()

if(mp.count("wcm")!=0){
    //键wcm在mp中
}

6 清空键值对映射

键值对映射的清空通过调用clear()方法实现,清空后大小变为0

mp.clear();

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海风许愿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值