【C/C++全套入门攻略】C++标准模板库(STL)用法介绍:map

C++标准模板库(STL)用法介绍:map

map:映射,STL容器之一,可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器)。

使用map前需要添加:

#include <map>

using namespace std;

1. map声明

map是一个模板类,所以使用前需要声明。

map<typename1, typename2> mp;

typename1, typename2可以是任何基本类型,也可以是STL标准容器

typename1代表键的类型,typename2代表值的类型,这样便会构成键-值映射

如果键值类型都是int,那么就相当于普通的int型数组

注:如果是字符串做映射时,必须使用string,而不能用char数组(因为数组不能作为键值)

2. map访问

一般有两种访问map内元素的方法:通过下标或者map的迭代器

(1)通过下标访问

类似于访问数组,map通过键作为下标访问值,所以键值是唯一

(2)通过迭代器访问

迭代器(iterator)理解为类似指针的东西,定义为:

map<typename1, typename2>::iterator it;

it是vector<typename>::iterator类型的变量,*it用来访问vector里的元素。迭代器都支持支持自增自减,但只有vector和string支持加减整数的操作。因此,map只能通过迭代器的自增迭代去访问元素,不支持*(it + i)的访问方式。map的每个元素由键-值构成,于是使用it->first访问键,使用it->second访问值。map会以键的增序自动排序,类似于set。

假设现在有一个map容器mp,那么,mp.begin()和mp.end()标志着迭代器的开头(首元素的地址)和结尾(尾元素地址的下一个地址)。

注:对于不是vector或string的容器,用*(it + i)访问失去了意义,但可用下标访问元素

3. map常用函数

(1) find()

mp.find(key)用来返回键为key的映射的迭代器

(2) erase()

  • 删除单个元素

    • mp.erase(it)用来删除迭代器it处的映射
    • mp.erase(key)用来删除键为key的映射
  • 删除一个区间内的所有元素

    mp.erase(first, last)用来删除迭代器[first, last)内的所有元素

(3) size()

size()用来获得map中映射的对数

(4) clear()

clear()用来将map中的所有元素清空

4. map用途

(1)字符串与整数之间的映射

(2)当做bool数组

判断大整数或者其他类型数据是否存在

(3)字符串和字符串的映射


欢迎访问我的STL系列:

C++标准模板库(STL)用法介绍:目录

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值