map(STL容器)
map
一种基于红黑树(不需了解)的关联树容器,支持快速的插入,查找和删除操作,并保持了内部元素的有序性,其中每一个元素都有一个键和一个与之关联得值组成。
可以形象的理解为一个转换器,给它一个东西(变量),它就对应的给你一个东西(变量)。
我们无需了解map的底层结构 , 只需知道如何使用以及相关的时间复杂度即可;
(1.map的结构:
在map中,
(2.map初始化
在使用map时,需引入头文件<map>
(如果是万能头当我没说)。
#include<map>
//#include<bits/stdc++.h> //懒人之选
using namespace std; //map在std的命名空间中
例:

我们用上面的代码来声明一个map,其中
一般情况下,我们只声明一个空的
注:在map键值对中<key,value>中,一个
相同的
(3.map的基本操作
方法 | 作用 | 时间复杂度 |
---|---|---|
insert({key,value}) | 插入一对键值对<key,value> | |
erase(key) | 消除key所对的键值对 | |
find(key) | 查找指定键key所对的迭代器 | |
operator[key] | 查找指定键key所对的值 | |
count(key) | 查找是否存在key的键值对 | |
size() | 返回map中键值对的数量 | |
clear() | 清空map中的键值对 | |
empty() | 判断map是否为空 | |
begin() | 返回第一个键值对所对的迭代器 | |
end() | 返回最后一个键值对所对的迭代器 |
注:在进行取值操作(
map<int,int>mp;
//1.运用count函数:
if(mp.count(key))
cout<<"1"<<endl;
//2.运用find函数
if(mp.find(key)!=mp.end)
cout<<"1"<<endl;
遍历map一般也有两种方法:
map<int,int>mp;
//1.用auto关键字进行遍历
for(auto &i : mp)
cout<<i.first<<" "<<i.second<<endl;
//2.用迭代器进行遍历
map<int,int>::iterator it;
for(it=mp.begin();it!=mp.end;it++){
//cout<<(*it).first<<" "<<(*it).second<<endl;
cout<<it->first>>" ">>it->second>>endl;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!