map.......

##map

map是c++标准模板库stl的一个关联容器,提供一对一的映射关系

“第一个一”称为关键字(key),别名是first,每个关键字只能在map中出现一次

“第二个一”称为关键字的值(value),别名是second

例如·:建立一个朋友数据库表,保存多个“姓名-电话号码”的对应关系,并保存在某种数据结构中

定义一个map对象

map<string,string>friends;

把朋友以及对应的电话号码保存在friends中:

friends.insert(“Alice”,“12456777”);

friends.insert(“Bob”,“10086”);

friends.insert(“Tom”,13456789");

要查询朋友的号码,通过

cout<<“jack的电话号码是:”<<friends.find(“Jack”);

例:给出一段英文

asafgggghhjkn

统计其中的每个字母出现的次数

定义map<char,int>cnt;//把各字母的出现的次数保存在cnt中

cnt.insert(‘a’,1);

cnt.insert(‘s’,1);

cnt[‘a’]++;

cnt[‘f’]++;//取代insert动作

map以模板(泛型)的方式出现,可以存储任意类型的数据,包括使用者自定义的数据类型

如:

map<int,int>mp;//整型到整型

map<int,string>m2;//整型到字符串型

map<string,stirng>m3;//字符串型到字符串型

map<preson,int>m6;//创建一个key为person型、value为int类型的map对象

在map内部所有的数据都是有序的

map由一颗红黑树实现,这颗树具有对数据自动排序的功能

###插入元素

map<int,string>student;

方式一:用insert函数插入pair

student.insert(pair<int,string>(0,"Zhangsan"));//pair函数构造一个对象,对象由一个整型和一个字符串型组成

方式二:直接赋值

student[10]="lisi";

###查找元素

find()返回一个迭代器,指向查找的元素,找不到,则返回map::end()位置(NULL)

iter=student.find(123);//查找123关键字对应的值

if(iter!=student.end())//判断迭代器是否指向end位置
{
cout<<"found,the value is"<<iter->second;
}
else
cout<<"not found"<<endl;

引用方法:

map<int,int>mpl;
int sum=100;
mpl[10]=3;//插入元素
sum+=mpl[10];//mpl中存在关键字10,它的对应值是3,所以sum累加后变为103
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值