map详解,小白快速入门

1.map是什么

map名叫映射,提供对数时间的有序键值对结构。底层原理是红黑树。

而映射是指一个元素x与一个元素y之间一一对应的关系,比如a[2]=1,则代表2与1的对应。

如果说数组是数与数之间的对应,那么map的对应则更多元化,它可以让一个字符与数对应,甚至也可以让字符串与数相对应,比如小明有19岁,可表示为a["xiaoming"] = 19,神奇吧(这只是个假设,方便理解,实际上用数组不能达成这种效果,要用map)

2.map的性质

1.一个键仅可以在映射中出现一次

2.map中键的顺序从小到大

若要变为从大到小可用

map> mp

3.map的初始化

map<键类型, 值类型, 比较器> mp
map mp;//数与数
map mp;//字符与数
map mp;//字符串与数

mp是为它命的名称

4.map中的一些语法

mp可用[],与数组类似

mp[键类型] = 值类型

1.增

mp[1] = 1

2.删

mp.erase(1)删去1这个键

mp.erase(要删除的那个键)

3.查询

mp.count(1) 返回1这个键的出现次数,由于mp有互异性,只会返回0或1,表示是否存在这个键,存在则为1否则为0

mp.count(要查的那个键)

4.查大小

mp.size() 返回mp的大小

5.清空

mp.clear()

6.查空

mp.empty() 若mp为空返回1

7.修改

mp[1] = 2

mp[键类型] = 值类型

8.时间复杂度

O(logn)

5.map的遍历

基于范围的循环(C++ 11):

	for(auto &pr : mp)
		cout << pr.first << ' ' << pr.second << '\n';
	//pr.first为键类型pr.second为值类型

6.总结

以上就是map的基本用法了

实践才是检验真理的唯一标准,建议看完后赶紧去编译器上使用一下

如果有收获不要忘记点一个免费的赞哦,祝您学习愉快!

你可能感兴趣的:(算法,c++)