首页 > 其他分享 >map/multimap

map/multimap

时间:2024-02-21 17:23:26浏览次数:16  
标签:map keyElem 迭代 容器 元素 multimap

map/multimap容器

1.map/multimap也是关联式容器,容器自身有规则,通过键值排序,map容器中的元素是对组,对组的第一个元素是键值,不能改变,第二个元素是实值,可以改变

2.数据结构:平衡二叉树

3.迭代器:双向迭代器

4.map容器和multimap容器的区别是multimap允许有相同的元素

5.常用的api:

​ 1.构造

map<T1, T2> mapTT;//map默认构造函数: 
map(const map &mp);//拷贝构造函数

​ 2.赋值

map& operator=(const map &mp);//重载等号操作符
swap(mp);//交换两个集合容器

​ 3.大小

size();//返回容器中元素的数目
empty();//判断容器是否为空

​ 4.查找

find(key);//查找键key是否存在,若存在,返回该键的元素的迭代器;/若不存在,返回map.end();
count(keyElem);//返回容器中key为keyElem的对组个数。对map来说,要么是0,要么是1。对multimap来说,值可能大于1。
lower_bound(keyElem);//返回第一个key>=keyElem元素的迭代器。
upper_bound(keyElem);//返回第一个key>keyElem元素的迭代器。	
equal_range(keyElem);//返回容器中key与keyElem相等的上下限的两个迭代器。

​ 5.插入

map.insert(...); //往容器插入元素,返回pair<iterator,bool>
map<int, string> mapStu;
// 第一种 通过pair的方式插入对象
mapStu.insert(pair<int, string>(3, "小张"));
// 第二种 通过pair的方式插入对象
mapStu.inset(make_pair(-1, "校长"));
// 第三种 通过value_type的方式插入对象
mapStu.insert(map<int, string>::value_type(1, "小李"));
// 第四种 通过数组的方式插入值
mapStu[3] = "小刘";  //3key  小刘是value
mapStu[5] = "小王";

​ 6.删除

clear();//删除所有元素
erase(pos);//删除pos迭代器所指的元素,返回下一个元素的迭代器。
erase(beg,end);//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。
erase(keyElem);//删除容器中key为keyElem的对组。

标签:map,keyElem,迭代,容器,元素,multimap
From: https://www.cnblogs.com/wbcde116/p/18025734

相关文章

  • RxJS中高阶映射操作符的全面讲解:switchMap, mergeMap, concatMap (and exhaustMap)
    原文链接:https://blog.angular-university.io/rxjs-higher-order-mapping/有一些在日常开发中常用的RxJS的操作符是高阶操作符:switchMap,mergeMap,concatMap,以及exhaustMap。举个例子,程序中大多数的网络请求都是通过以上某个操作符来完成的,所以为了能够写出几乎所有反应式编程,必须......
  • 验证对象和map赋值一样,多个方法赋值,只要中间没有重新new对象,值就会一直存在
    packageservice;importbase.BaseSpringTest;importcom.bestpay.settle.unity.certify.integration.model.CertifyInfoBO;importlombok.extern.log4j.Log4j2;importorg.junit.Test;importjava.util.HashMap;importjava.util.Map;/***场景测试类**@authorzhangkuankuan......
  • 最新Nmap进阶技术
    Nmap进阶1.脚本介绍Nmap的脚本默认存在于/Nmap/scripts文件夹下,如图3-71所示。  图3-71  Nmap的脚本主要分为以下几类。— Auth:负责处理鉴权证书(绕过鉴权)的脚本。— Broadcast:在局域网内探查更多服务器端开启情况的脚本,如DHCP、DNS、SQLServer等。— Brute:针对......
  • spark为什么比mapreduce快?
    spark为什么比mapreduce快?首先澄清几个误区:1:两者都是基于内存计算的,任何计算框架都肯定是基于内存的,所以网上说的spark是基于内存计算所以快,显然是错误的2;DAG计算模型减少的是磁盘I/O次数(相比于mapreduce计算模型而言),而不是shuffle次数,因为shuffle是根据数据重组的次数而定,所......
  • golang数组&切片&map
    数组数组声明funcmain(){ /*语法一*///数组名字[数组长度]数组类型 //声明一个数组长度为3类型是int会初始化为int类型的零值,默认值是[000] //声明数组的时候指定长度是一个常量,数组的不可改变,超出长度会报错 vararr[3]int //数组赋值 arr[0]=1......
  • 最新Nmap入门技术
    Nmap详解Nmap(NetworkMapper,网络映射器)是一款开放源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、操作系统与应用服务指纹识别、WAF识别及常见的安全漏洞。它的图形化界面是Zenmap,分布式框架为DNmap。 Nmap的特点如下。(1......
  • 通用方式实现Map
    通用方式实现MapChatGpt实现展示地图并在地图上提供操作选项的技术栈可以包括:Web开发技术:HTML、CSS、JavaScript地图API:如GoogleMapsAPI、MapboxAPI、Leaflet等前端框架:如React、Vue.js、Angular等后端技术:如Node.js、Django、Flask等(如果需要与后端交互)数据库:如MySQL......
  • Map判空 、空字符串、空key值等各种判断方法
    一、Map本身的判空1.1“==null”不能判断Map的本身是否为null  1.2map.isEmpty()判断为空当map没有向里面put数据的时候,可以利用map自带得方法来进行判断该Map是否里面有值 1.3“==null”与“isEmpty()”最大的区别如果map是一个null存在,那么在利用isEmpty()来判空将......
  • 解决MyBatis Mapper 的XML文件SQL语句无法自动提示问题
    一、问题1.问题场景IDEA中MyBatis编写mapper的SQL语句的时候无法提示SQL和数据库2.问题描述无法正常方便的使用IDEA的提示功能,更准确无误的编写代码3.本解决方案优势亲测可用,一劳永逸(IDEA版本IntelliJIDEA2021.1.3 )目的在于对Mybatis的Mapper.XML中sql语句进行提示......
  • mapPartition与map函数
    dd的mapPartitions是map的一个变种,它们都可进行分区的并行处理。两者的主要区别是调用的粒度不一样:map的输入变换函数是应用于RDD中每个元素,而mapPartitions的输入函数是应用于每个分区。Map算子是分区内一个数据一个数据的执行,类似于串行操作。而mapPartitions算子是以分区为......