map容器

#include<map>
using std::map;

1.map的定义

map<typename1,typename2> name;

typename1为键(key),keyname2为值(value)

2.map容器内元素的访问

(1)下标访问

注意一个键只能对应一个值

map<char,int> mp;
mp['a']=100;
mp['a']=120;
cout<<mp['a'];
//输出120

(2)迭代器访问

迭代器定义与其他STL相同

map<typename1,typename2>::iterator it;

使用上与其他STL有区别,因为迭代器需要同时能访问到键和值,使用->first和->second分别访问键和值

注意:map会按照的大小进行自动排序,类似于set

#include<bits/stdc++.h>
using namespace std;
signed main(void)
{
    map<char,int> mp;
    mp['c']=1;
    mp['b']=2;
    mp['a']=3;
    for(map<char,int>::iterator it=mp.begin();it!=mp.end();it++)
    {
        printf("%c %d\n",it->first,it->second);
    }
    return 0;
}
/*
输出结果为(自动排序)
a 3
b 2
c 1
*/

3.map常用函数解析

(1)find()

find(key)返回键为key的映射的迭代器,时间复杂度为O(logn),n为map中映射个数

#include<bits/stdc++.h>
using namespace std;
signed main()
{
    map<char,int> mp;
    mp['b']=2;
    mp['c']=1;
    mp['a']=3;
    map<char,int>::iterator it=mp.find('b');
    printf("%c %d\n",it->first,it->second);
	/*若该键值存在,则返回该键值所在的
	  迭代器位置,不存在则返回end()迭代器位置 
	*/
    return 0;
}

(2)erase()

1.erase(it) it为待删除元素的迭代器,时间复杂度O(1)

2.erase(key) key为待删除元素的键,时间复杂度为O(logn),n为map内元素个数

3.erase(first,last) 左闭右开,[first,last),时间复杂度为last-first

(3)size()

返回映射对数,O(1)

(4)clear()

清空元素,O(n),n为元素个数

4.map常见用途

multimap(一个键对应多个值)、unordered_map(不排序)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值