首页 > 其他分享 >【数据类型】映射map

【数据类型】映射map

时间:2024-09-20 20:54:47浏览次数:3  
标签:map 迭代 映射 int 数据类型 单词 mp

小明正在备考英语四级考试,但他的词典太厚了,他记不住哪个单词在哪里。

于是他准备开发一个可以直接找某单词在某页的应用。

但是,他不会做,整天十分烦恼。

好啦,进入正题,大家好,我是@学霸小羊,今天来讲讲map——映射

map翻译为映射,是STL中的常用容器。

其实,数组就是一种映射,比如:int a[100];就是定义了一个int到int的映射。而 a[5]=25 ; 就是把 5 映射到25。

数组总是将 int 类型映射到其它基本类型(称为数组的基类型),这同时也带来了一个问题,有时候我们希望把 string 映射成一个 int ,数组就不方便了。

这时就可以使用map,map可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器)。

而我们,就要通过映射,开发一个小明想要的程序。

(当然,是为了我考英语四级考试用的,我才懒得帮小明做)

  1. 第 1 行 1 个正整数 N,N<=10,000,表示字典中一共有多少个单词。
  2. 接下来每两行表示一个单词,其中:
    • 第 1 行是一个长度小于或等于 100 的字符串,表示这个单词,全部小写字母,单词不会重复。
    • 第 2 行是 1 个整数,表示这个单词在字典中的页码。
    • 接下来一行是 1 个整数 M ,M <= 10,000,表示要查的单词数。
    • 接下来的M行,每行一个字符串,表示要查的单词,保证在字典中存在

做这个程序,想必大家都会想到结构体,但是,请看(不是VCR):

这,打破了我们美好的幻想。

关键时刻,映射出场了!

映射其实是数组的变形,它可以随意改变数组下标的类型,以及数组存储内容的类型。

定义方法:

map<string,int> mp;
//定义以字符串为下标、int类型为映射mp

上面代码中的string和int是可以替换的。

映射,顾名思义,通过某物映射到另一物;而上面代码就是通过字符串映射他的页码(整型)。

而那个“下标”,叫 键值(关键值);和他对应的那个值,较映射值。

例:

#include<bits/stdc++.h>
using namespace std;
map<string,int> mp;
int main(){
    mp["ant"]=10;mp["bear"]=14;mp[elephant]=21;
    string s;
    cin>>s;
    cout<<mp[s];
    return 0;
}
/*
输入:ant
输出:10
*/

map除了可以用下标(键值)访问,还可以用迭代器访问:

例如:定义了 map< char , int > mp,且做了多次操作后,输出所有的值。

mp['c']=124, mp['t']=100,  mp['c']=200;

map<char,int>::iterator it; //定义迭代器变量 it

for(it=mp.begin(), it !=mp.end(), it++)  //用迭代器来输出映射的内容
	cout<<it->first<<':'<<it->second<<endl;
	

总结起来,就是一下这几种操作:


map<key_type,value_type>name;//普通的定义

map<string,int>::iterator it; //定义映射类型的迭代器。

it->first; // 引用键值

it->second // 引用映射值。

m.size(); // 元素个数;

m.empty(); // 判m是否空;

m.clear(); // 清空m;

m.begin();  //是指向map中最小元素的迭代器。

m.end();  //是指向map中最大元素下一个位置的迭代器。

好啦,就今天就讲到这,拜拜!

标签:map,迭代,映射,int,数据类型,单词,mp
From: https://blog.csdn.net/yangyanbin_sam/article/details/142331148

相关文章

  • MATLAB heatmap 坐标
    MATLAB的heatmap坐标数字密集,希望等间距稀疏打印坐标刻度。XLabels=1:100;%ConverteachnumberinthearrayintoastringCustomXLabels=string(XLabels);%ReplaceallbutthefifthelementsbyspacesCustomXLabels(mod(XLabels,5)~=0)="";%Setth......
  • SQL Server 数据类型转换详解
    在SQLServer中,数据类型转换是数据库开发中非常常见的任务。数据类型转换是指将一种数据类型的数据转换为另一种数据类型。SQLServer支持两种类型的转换方式:隐式转换和显式转换。本文将详细介绍SQLServer中数据类型转换的原理、使用方法、常见场景,并通过具体的例子进行解释和演示......
  • 使用swig映射c++function
    swig可以自动生成从c++到其他语言如Java、Python等转换的中间语言,目前swig已经支持很多c++11的特性了,但是这次项目中发现function特性还没有支持,只能自己生成。从网上找了一份Java的java-HowtouseSWIGtowrapstd::functionobjects?-StackOverflow,我需要的c#的,故需要稍......
  • 数据类型自动转换的解决方案
    数据类型自动转换的解决方案java8、jdk8背景为方便测试框架数据处理以及方便查看一些数据,弄了一个工具类,部分要点简要说明。主要涉及到字符串与其他类型的相互转换,无其他类型之间的相互转换。轻量测试框架实现与使用的总篇可见此文。问题分析字符串转换为对象的方法......
  • Java Map和List常见操作
    Javamap详解-用法、遍历、排序、常用API等-Java初级码农-博客园(cnblogs.com)//创建实例importjava.util.*;publicclassListDemo{publicstaticvoidmain(String[]args){List<String>arrayList=newArrayList<>();//创建ArrayList实例......
  • 兼收并蓄 TypeScript - 基础: map
    源码https://github.com/webabcd/TypeScriptDemo作者webabcd兼收并蓄TypeScript-基础:map示例如下:basic\map.ts{//map是一个key/value集合,先进先出,遇到重复键值则后面的会覆盖前面的,key和value都支持类型的多样性//常规操作有set(),get(),dele......
  • 兼收并蓄 TypeScript - 基础: 数据类型
    源码https://github.com/webabcd/TypeScriptDemo作者webabcd兼收并蓄TypeScript-基础:数据类型示例如下:basic\dataType.ts{//基本数据类型boolean,number,string,symbolleta:boolean=true;letb:number=10;letc:string="abc";......
  • 处理微信小程序 ec-canvas 绘制map地图时缩放大小问题
    版本为5.1.2min版本,https://github.com/apache/echarts/releases?page=3 最重要的是这个下面这个dataZoom写法添加dataZoom:{type:'inside'},constoption={dataZoom:{type:'inside'},geo:......
  • Hadoop-MapReduce的 原理 | 块和片 | Shuffle 过程 | Combiner
    MapReduce的原理简单版本:AppMaster:整个Job任务的核心协调工具MapTask:主要用于Map任务的执行ReduceTask:主要用于Reduce任务的执行一个任务提交Job-->AppMaster(项目经理)-->根据切片的数量统计出需要多少个MapTask任务-->向ResourceManager(Yarn平台的老大)索要......
  • 网络安全C10-2024.9.15-Nmap、Xray、Nessus和AWVS使用扫描
    1、安装并使用Nmap扫描一个地址(本机、VPS、虚拟机环境都可以),提供扫描结果截图nmap下载安装:https://nmap.org/download#windowsnmap概述:Nmap(“NetworkMapper<网络映射器>”)是一款开放源代码的网络探测和安全审核的工具。Nmap输出的是扫描目标的列表,以及每个目标的补充信息,......