map查找并修改元素

#include<bits/stdc++.h>
using namespace std;
void show(map<int,string>& mp)
{
    map<int,string>::iterator iter=mp.begin();
    while(iter!=mp.end())
    {
        cout<<iter->first<<" "<<iter->second<<endl;
        iter++;
    }
    cout<<endl;
}
int main()
{
    //构造 map
    map<int,string> mp;
    mp.insert({5,"map 5"});//使用{}
    mp.insert({6,"map 6"});//使用{}
    mp.insert({7,"map 7"});//使用{}
    mp.insert({8,"map 8"});//使用{}
    mp.insert({0,"map 0"});//使用{}
    mp.insert({1,"map 1"});//使用{}
    mp.insert({2,"map 2"});//使用{}
    mp.insert({3,"map 3"});//使用{}
    mp.insert({4,"map 4"});//使用{}

    //查找数据和修改数据
    //由key查找value时,首先要判断map中是否包含key。
    //map提供了两种方式,查看是否包含key,m.count(key),m.find(key)。
    //m.count(key):由于map不包含重复的key,因此m.count(key)取值为0,或者1,表示是否包含。
    //m.find(key):返回迭代器,判断是否存在。
    //1:count()
    if(mp.count(1)>0){
        cout<<1<<" 查到了"<<endl;
        mp[1]="100";//1:可直接修改
        cout<<" 修改为"<<mp[1]<<endl;
    }else{
        cout<<"没查到"<<endl;
    }
    //2:find() 推荐这一种,因为count需要查两次;也有find(begin,end,target)查找目标
    map<int,string>::iterator iter=mp.find(2);
    if(iter!=mp.end()){
        cout<<iter->first<<" 查到了"<<endl;
       (*iter).second="2000";//2:迭代器修改
        cout<<" 修改为"<<mp[2]<<endl;
        iter->second="1000";//2:迭代器修改
        cout<<" 修改为"<<mp[2]<<endl;
    }
    else {
        cout<<"没查到"<<endl;
    }

    return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值