广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言map函数的基础用法详解
  • 664
分享到

C语言map函数的基础用法详解

2024-04-02 19:04:59 664人浏览 独家记忆
摘要

目录mapmap具体操作总结map 有N个学生的姓名name和学号ID,要求给你一个学生的name求查找他的ID。 简单做法是定义 string name [ N ] 和 int I

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 , int> 代表从字符串映射到数字,还含有多种映射。(注意,字符串到整型的映射,必须是string而不是char

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

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

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

#include<iOStream>
#include<cstring>
#include<map>//map函数头文件
using namespace std;
map<string ,int> 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;
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: C语言map函数的基础用法详解

本文链接: https://www.lsjlt.com/news/161488.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言map函数的基础用法详解
    目录mapmap具体操作总结map 有N个学生的姓名name和学号ID,要求给你一个学生的name求查找他的ID。 简单做法是定义 string name [ N ] 和 int I...
    99+
    2022-11-12
  • C语言中map函数的基础用法是什么
    C语言中map函数的基础用法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。map有N个学生的姓名name和学号ID,要求给你一个学生的name求查找他的I...
    99+
    2023-06-22
  • C语言基础函数用法示例详细解析
    目录函数函数定义函数一般格式C语言函数分类库函数库函数的分类库函数的学习自定义函数函数的参数实际参数形式参数函数的调用传值调用传址调用无参函数调用函数的声明和定义函数的声明函数的定义...
    99+
    2022-11-12
  • C语言函数调用基础应用详解
    所谓函数调用(Function Call),就是使用已经定义好的函数。函数调用的一般形式为: functionName(param1, param2, param3 ...); fu...
    99+
    2023-02-11
    C语言函数调用方式 C语言函数调用事例
  • Go语言基础map用法及示例详解
    目录概述语法声明和初始化读取删除遍历总结示例 概述 map是基于key-value键值对的无序的集合 Go语言中的map是引用类型 必须初始化才能使用。 ...
    99+
    2022-11-12
  • C语言基础 strlen 函数
    目录一.strlen 函数简介二.strlen 函数实战一.strlen 函数简介 在C 语言中,char 字符串也是一种非常重要的数据类型,我们可以使用 strlen 函数获取字符...
    99+
    2022-11-12
  • Go语言基础函数基本用法及示例详解
    目录概述语法函数定义一.函数参数无参数无返回有参数有返回函数值传递函数引用传递可变参数列表 无默认参数函数作为参数二、返回值多个返回值跳过返回值匿名函数匿名函数可以赋值给一个变量为函...
    99+
    2022-11-12
  • C语言指针基础详解
    目录1.1:概述1.1.1:内存1.1.2:内存1.1.3:指针和指针变量1.2:指针基础知识1.2.1:指针变量的定义和使用1.2.2:通过指针间接修改变量的值1.2.3:指针的大...
    99+
    2022-11-12
  • 详解C语言初阶基础
    目录1.什么是c语言2.初始化:3.变量和常量4.作用域与生命周期简单阐述:作用域:生命周期(存在与消失):作用域与生命周期的区别作用域:生命周期:5.    &...
    99+
    2022-11-12
  • Go语言基础学习之map的示例详解
    目录Mapmap定义map基本使用判断某个键是否存在map的遍历使用delete()函数删除键值对按照指定顺序遍历map元素为map类型的切片值为切片类型的mapMap实现原理什么是...
    99+
    2023-05-14
    Golang map原理 Golang map实现 Golang map
  • C语言详解字符串基础
    目录一、字符串的概念二、字符数组与字符串三、字符串字面量的秘密四、字符串的长度五、小结一、字符串的概念 字符串是有序字符的集合 字符串是程序中的基本元素之一 C 语言中没有字符串的概...
    99+
    2022-11-13
  • 详解C语言初阶基础(2)
    目录1.选择语句(if)2.循环while循环for循环do-while循环补充总结1.选择语句(if) 我们先不讲switch,后面会补充。先来对简单地if进行了解。 我们已经知道...
    99+
    2022-11-12
  • Python语言基础之函数语法
    目录1 匿名函数(lambda 函数)2 python中函数的可变参数在 Python 中,函数可以通过以下语法定义和使用: def function_name(parameter1...
    99+
    2023-05-19
    Python语言基础 Python函数语法 Python函数
  • C++中的STL中map用法详解(零基础入门)
    目录一、什么是 map ? 二、map的定义 2.1 头文件 2.2 定义 2.3 方法 三、实例讲解 3.1 增加数据 3.2 删除数据 3.3 修改数据 3.4 查找数据...
    99+
    2022-11-12
  • C语言的基本语法详解
    目录1、标识符与关键字2、常量和符号常量(1)常量和常量符号(2)变量3、C语言数据类型(1)整型常量整型变量原码、反码和补码(2)实型数据实型常量实型变量实型变量的定义以及初始化(...
    99+
    2022-11-12
  • C语言之strtol函数用法详解
    strtol 函数用法 strtol是一个C语言函数,作用就是将一个字符串转换为长整型long,其函数原型为: long int strtol (const char* str,...
    99+
    2022-11-12
  • 详解C语言基础的类型转换
    目录类型转换隐式类型转换强制类型转换总结 类型转换 数据有不同的类型,不同类型数据之间进行混合运算时必然涉及到类型的转换问题。转换包括隐式类型转换和强制类型转换。 类型转换的原则:...
    99+
    2022-11-12
  • C语言基础指针详解教程
    目录1.1:概述1.1.1:内存1.1.2:内存1.1.3:指针和指针变量1.2:指针基础知识1.2.1:指针变量的定义和使用1.2.2:通过指针间接修改变量的值1.2.3:指针的大...
    99+
    2022-11-12
  • python中的map函数语法详解
    目录1 map()函数的简介以及语法:2 map()函数实例:1 map()函数的简介以及语法: map是python内置函数,会根据提供的函数对指定的序列做映射。 map()函数的...
    99+
    2022-11-13
  • C语言函数的基本使用和递归详解
    目录本章目标函数是什么C语言中函数的分类库函数如何学会使用库函数?自定义函数函数的参数函数的调用:函数的嵌套调用和链式访问嵌套调用链式访问函数的声明和定义函数递归什么是递归?递归的两...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作