我是靠谱客的博主 清秀发夹,最近开发中收集的这篇文章主要介绍STL之映射,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在上一篇文章中,我们初步认识了STL,大概的学习了动态数组,这篇文章,请大家继续跟随我的脚步,一起来学习STL中的映射

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

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

也可以这么理解:下标为5的位置中,存放了数组元素25,那么a数组中的5相当于25。

一般的数组总是将int类型映射到其它基本类型(称为数组的基类型),这同时也带来了一个问题,有时候我们希望把string映射成一个string,就是下标为 “最优秀的编程网站”中存放一个“csdn” , 数组就不方便了。

    这时就可以使用map,map可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器)。(里面也可以是struct结构体)

一、map 的用途至少有以下三种情形:

   1)需要建立字符(串)与整数之间的映射。

   2)可以用大整数做下标,来实现数组计数。

   3)字符串与字符串之间的映射。

二、定义map的方法

    1、必须先添加map头文件,即#include <map>,同时必须要有“using namespace std”。

    2、定义一个map的方法为:map<typename1,typename2> name;

     其中,typename1是映射前的类型(键key),typename2是映射后的类型(值value),name为映射的名字。

     例如:普通int数组a就是map<int,int> a。而如果是字符串到整型的映射,就使用string和int建立映射,即map<string,int> a。

三、使用map的方法

   1、map 的访问

       访问 map 的元素有两种方式,一种是通过下标访问;另一种是通过迭代器访问。

       (1)、用下标访问

              通过下标访问就像普通的数组元素访问。

             例如:定义了map<char,int> mp, 那么:就可以直接访问mp[‘c’], 如mp[‘c’]=124。

        (2)、通过迭代器访问,通常遍历整个映射时,会用到它。

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

                     如mp[‘c’]=124,mp[‘t’]=100,  mp[‘c’]=200    

             map<char,int>::iterator it;

             因为map的每一对映射都有两个typename,

             所以,我们使用“it->first”来访问“键”(下标),而使用“it->second”来访问“值”(内容)。 

                 for(it=mp.begin(), it !=mp.end(), it++)

                     cout<<it->first<<':'<<it->second<<endl;

       2. Map 使用方法总结:

              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中最大元素下一个位置的迭代器。

以上就是STL中映射map的函数以及简介,我们下篇文章再见~

 

最后

以上就是清秀发夹为你收集整理的STL之映射的全部内容,希望文章能够帮你解决STL之映射所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部