进阶篇_map容器(保存键值对)

1. 三种向map容器插入数据对的方法(等效)

map<int, Employee> mapEmployee;
Employee emp1;
mapEmployee.insert(pair<int, Employee>(1, emp1)); //法一插入:使用pair建立员工号1和员工对象emp1的映射关系,并插入map容器中 

mapEmployee.insert(map<int, Employee>::value_type(1, emp1)); //法二插入:使用value_type类型实现数据的插入 

mapEmployee[1983] = emp1; //法三插入:向map容器中插入一个数据对(1983, emp1) 

2. 根据键找到对应的值

a. 通过迭代器输出数据对的键和值(遍历):

for(map<int, Employee>::iterator it; it!=mapEmployee.end(); ++it)
{
	cout<<it->first<<endl; //通过迭代器输出数据对的键和值
	cout<<it->second.getname()<<endl; 
}
b.通过 map容器的find()函数查找某一个键(也通过迭代器,这种方式用的更多):

int findkey = 1; //定义要查找的键
map<int, Employee>::iterator it = mapEmployee.find(findkey);
cout<<it->first<<" "<<it->second.getname()<<endl; 

3. 访问某个范围的数据对


int fromkey = 1;
int tokey = 1000; //定义键的范围 

map<int, Employee>::iterator itfrom = mapEmployee.lower_bound(fromkey); 
map<int, Employee>::iterator itto = mapEmployee.upper_bound(tokey);	//用迭代器表示起始位置和终止位置

for(map<int, Employee>::iterator it = itfrom; it!=itto; ++it)
{
	cout<<it->first<<endl; //输出范围内的所有数据
} 
mapEmployee.erase(itfrom, itto);//删除范围内的所有数据
以上代码中,分别使用了lower_bound()与upper_bound()函数来获得指向这个范围的起始位置和终止位置的迭代器

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值