超详细STL专题二:map

本文详细介绍了C++标准库中的Map容器,包括其基本概念、原理说明、定义方式及赋值方法等内容。Map是一种高效的数据结构,可用于快速查找、插入、删除记录等操作。

一、概述

Map是c++的一个标准容器,起到映射作用,在一些程序中建立一个map可以起到事半功倍的效果,查找的复杂度基本是Log(N)。//(好复杂,这什么垃圾玩意,我就算WA,TLE都不可能用—————————————————————真香!)。

需要用到头文件 #include<map>;

二、原理说明

什么是映射?举个例子,其实数组就是简单的映射:

数组只能由整形向基本类型映射,但假如说将string映射为int,就非常困难,而map就可以解决。

自动建立映射关系的对应。 两者可以是任意你需要的类型。map还可以快速查找记录,快速插入记录,快速删除记录,根据记录修改映射值,遍历所有记录!

三、代码解析

1、定义

键和值都是唯一的:

map<typename1,typename2> name ;
//typename1:映射前键key typename:映射后value

举例:

类比数组:

map<int,int> a;

字符串至整形:

map<string,int> a;

一系列用法: 

map<string,int> strMap;        
map<int,string> intMap;
map<string,char> strMap;        
map<char,string> charMap;
map<char,int> charMap;           
map<int,char> intMap;

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

2、赋值

赋值的类型多种多样:

(1)pair系列:

可以这样:

map<int, string> ismap;
ismap.insert(pair<int,string>(1,"ok"));

 也可以这样:

map<int, string> ismap;
ismap.insert(make_pair<int,string>(2,"good"));

(2) value_type:

map<int, string> ismap;
ismap.insert(map<int, string>::value_type(3,"cool"));

(3)“数组”版: 

map<int, string> ismap;
ismap[4] = "Superb";

需要注意的是,只有最后一组假如重复输入,会覆盖;前三种直接报错! 

3、函数

基本和上一篇list差不多,就不过多赘述,一一举例了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值