首页 > 其他分享 >map的几种用法

map的几种用法

时间:2022-09-22 23:57:24浏览次数:48  
标签:返回 map 迭代 元素 value 几种 key 用法

集合论中的一个很重要的用法

1,map简介

map是STL的一个关联容器,它提供一对一的hash。

  • 第一个可以称为关键字(key),每个关键字只能在map中出现一次;
  • 第二个可能称为该关键字的值(value);

map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。

Map主要用于资料一对一映射(one-to-one)的情況,map內部的实现自建一颗红黑树,这颗树具有对数据自动排序的功能。

在map内部所有的数据都是有序的,后边我们会见识到有序的好处。比如一个班级中,每个学生的学号跟他的姓名就存在著一对一映射的关系。

 

2,map的功能

自动建立key - value的对应。key 和 value可以是任意你需要的类型,包括自定义类型。

3,使用map

使用map得包含map类所在的头文件

#include <map> //注意,STL头文件没有扩展名.h

map对象是模板类,需要关键字和存储对象两个模板参数:

std:map<int, string> personnel;

这样就定义了一个用int作为索引,并拥有相关联的指向string的指针.

为了使用方便,可以对模板类进行一下类型定义,

typedef map<int,CString> UDT_MAP_INT_CSTRING;

UDT_MAP_INT_CSTRING enumMap;

4,map的构造函数

map共提供了6个构造函数,这块涉及到内存分配器这些东西,略过不表,在下面我们将接触到一些map的构造方法,这里要说下的就是,我们通常用如下方法构造一个map:

map<int, string> mapStudent;

5. map的基本操作函数

     C++ maps是一种关联式容器,包含“关键字/值”对

     begin()         返回指向map头部的迭代器

     clear()        删除所有元素

     count()         返回指定元素出现的次数, (帮助评论区理解: 因为key值不会重复,所以只能是1 or 0)

     empty()         如果map为空则返回true

     end()           返回指向map末尾的迭代器

     equal_range()   返回特殊条目的迭代器对

     erase()         删除一个元素

     find()          查找一个元素

     get_allocator() 返回map的配置器

     insert()        插入元素

     key_comp()      返回比较元素key的函数

     lower_bound()   返回键值>=给定元素的第一个位置

     max_size()      返回可以容纳的最大元素个数

     rbegin()        返回一个指向map尾部的逆向迭代器

     rend()          返回一个指向map头部的逆向迭代器

     size()          返回map中元素的个数

     swap()           交换两个map

     upper_bound()    返回键值>给定元素的第一个位置

     value_comp()     返回比较元素value的函数

 

标签:返回,map,迭代,元素,value,几种,key,用法
From: https://www.cnblogs.com/lyp-Bird/p/16721251.html

相关文章

  • 444stream流中的常用方法_map和445Stream流中的常用方法_count
    映射Map如果需要将流中的元素映射到另一个另一个流中,可以使用map方法方法签名:<R>Stream<R>map(Function<?superT,?extendsR>mapper);该接口需要一个Function......
  • Java实体类对象与Map对象互转
    实体类对象转Map对象使用Fastjsonpublic<T>Map<String,Object>toMapByJson(Tobj){//默认序列化为数字类型的时间戳//StringjsonStr=JSON.toJSONStr......
  • Java Map倒序排列
    publicstaticvoidmain(String[]args){Map<String,List<String>>map=newLinkedHashMap<>();//倒序遍历ListIterator<Map.Entry<......
  • .map 给数组对象添加新属性
    letmenuList=[{name:'晓明',age:18},{name:'黎明',age:20},{name:'德华',age:28},]constlist=this.list.map((item)=>({...item,title:`新属性1`......
  • cannot be cast to java.util.Map
    特别记一下,对象的字段,首字母小写!!!代码:@OverridepublicList<MODEL_Vo>find(Stringstr){Stringsql="select*fromtab";Queryquery=em.......
  • 003 逻辑运算的高级用法
    [A]可选链(?.)场景:1. 开发中,我们经常使用obj.name的方式区获取对象的属性2.而我们又无法保证obj本身一定存在,若obj为null,undefined,以及obj......
  • BigData——MapReduce
    MapReduce上图是MapReduce的任务处理过程概述MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题.MapReduce是分布式运行的,由两个阶......
  • BigData——Hbase Shell的用法
    HbaseShell的用法whoami我是谁whoamiversion返回hbase版本信息versionstatus返回hbase集群的状态信息statustable_help查看如何操作表......
  • 【查漏补缺】javascript中逗号操作符的拓展用法
    1.背景:今天看Vue3文档,发现一个网格案例中有一段 reduce的写法和作用如下:arr.reduce((o,key)=>((o[key]=1),o),{})//目的==>将["name","power"]转......
  • map.merge() 方法
     packageutils;importlombok.AllArgsConstructor;importlombok.Data;importlombok.extern.slf4j.Slf4j;importjava.text.ParseException;importjava.text.......