千家信息网

C语言中map函数的基础用法是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,C语言中map函数的基础用法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。map有N个学生的姓名name和学号ID
千家信息网最后更新 2026年11月02日C语言中map函数的基础用法是什么

C语言中map函数的基础用法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

map

有N个学生的姓名name和学号ID,要求给你一个学生的name求查找他的ID。

简单做法是定义 string name [ N ] 和 int ID[ N ] 存储信息,然后在name [ ] 中查找这个学生,找到后输出他的ID。但是这样的缺点是需要查找所有的name [ N ],时间复杂度是O( N ),效率低下。

利用 STL 中 map容器 可以快速实现查找,复杂度是O( log 2 N )。

map是关联容器,它实现从键(key)到值(value)得的映射。map效率高的原因是它利用平衡二叉搜索树来存储和访问。

一般的数组也是用映射方法实现的。

int a[ 100 ],是定义了从int型到int型的映射,比如 a[ 4 ]=36就分别是将 4 映射到 36

double b[ 100 ],是定义了从int型到int型的映射,比如 b[ 5 ]=0.009 就分别是将 5 映射到 0.009

map具体操作

( 1 ) 定义:例如 map 代表从字符串映射到数字,还含有多种映射。(注意,字符串到整型的映射,必须是string而不是char)

( 2 ) 赋值:例如 a[ "TOM" ]=15,这里把 "TOM" 当成普通数组下标来使用。

( 3 ) 查找:可以直接使用 a[ "TOM" ]表示,不必要搜索所有的值。

注意map是C++的函数,必须使用C++头文件。例题 POJ 2153

#include#include#include//map函数头文件using namespace std;map x;//定义从string映射到int char s[10010][50];char b[50],c[50]="Li Ming";int main(){        int m,n,i,j,num,sum,sort;        scanf("%d",&n);        getchar();        for(i=1;i<=n;i++)        {                gets(s[i]);                x[s[i]]=0;//将s[i]当做是普通数组下标使用         }        scanf("%d",&m);        while(m--)        {                sort=1;                for(i=1;i<=n;i++)                {                        scanf("%d",&num);                        getchar();                        gets(s[j]);                        x[s[j]]+=num;//成绩相加                 }                for(i=1;i<=n;i++)                if(strcmp(c,s[i])==0) sum=x[s[i]];//刷新"Li Ming"的分数                 for(i=1;i<=n;i++)                if(x[s[i]]>sum) sort++;//求"Li Ming"的名次                 printf("%d\n",sort);        }        return 0;}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

函数 学生 数组 复杂 普通 下标 复杂度 字符 字符串 容器 效率 文件 C++ 存储 帮助 搜索 基础 语言 低下 清楚 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国互联网科技工作委员会毛军 易互联网科技有限公司 互联网科技作文 互联网科技公司官网 互联网科技的英文 互联网科技logo设计 长亮科技 互联网金融 科技互联网创业计划书 互联网科技公司做什么 科技大学互联网专业好不好 互联网科技实习生岗位职责 栖莱科技互联网股份有限公司 来此购互联网科技有限公司 互联网为啥属于高科技 广州互联网高科技取餐柜 郑州欣桑互联网科技有限公司 西安有哪些互联网高科技企业 广州梦谷互联网科技有限公司领导 伍佰万互联网科技是干嘛的 六子台科技互联网展会 云南咖啡 广东猪兼强互联网科技有限公司 河南云网互联网络科技有限公司 猪兼强互联网科技 宁夏众和广鑫互联网科技有限公司 朱啸虎曾投资哪些互联网科技企业 南通创西澳互联网科技有限公司 互联网营销推广黑科技 济南小医互联网科技有限公司招聘 北京天晋互联网科技有限公司
0