map的基础定义及运用

Map

1 使用

1 声明

/*声明map*/
    map<int, string> myMap = {{1, "Apple"}, {2, "Banana"}, {3, "Orange"}};

2 插入元素

myMap.insert(make_pair(4, "Graphes"));

3 通过访问键查找和访问元素

cout << myMap[2] << endl;

在这里插入图片描述

4 遍历并打印map中元素

for(const auto& pair : myMap) {
    cout << "Key is: " << pair.first << ", Value is: " << pair.second << endl;
}

在这里插入图片描述

5 删除元素

myMap.erase(3);

在这里插入图片描述

6 判断指向某个键指向的键值对是否存在

if(myMap.count(3) == 0) {
    cout << "Key 3 not found" << endl;
}

在这里插入图片描述

7 清空map

myMap.clear()

8 完整代码

#include <bits/stdc++.h>
using namespace std;
int main() {
    /*声明map*/
    map<int, string> myMap = {{1, "Apple"}, {2, "Banana"}, {3, "Orange"}};

    /*插入元素*/
    myMap.insert(make_pair(4, "Grapes"));

    /*通过访问键查找和访问元素*/
    cout << myMap[2] << endl;

    /*遍历并打印map中元素*/
    for(const auto& pair : myMap) { //const auto& pair:用于遍历map的迭代器
        cout << "Key is " << pair.first << ", Value: " << pair.second << endl;
    }

    /*删除元素*/
    myMap.erase(3);     //这个是将整个key = 3的键值对删除了
    cout << "After delete key 3, the new map is:" << endl;
    for(const auto& pair : myMap) {
        cout << "Key is: " << pair.first << ", Value is: " << pair.second << endl;
    }
    
    /*判断指向某个键指向的键值对是否存在*/
    if(myMap.count(3) == 0) {
        cout << "Key 3 not found" << endl;
    }

    /*清空map*/
    myMap.clear();
    if(myMap.empty()) {
        cout << "Map is empty" << endl;
    }
    system("pause");
    return 0;
}

2 运用

在这里插入图片描述

2.1 主要思路:

1 使用map,其中每读取一个元素作为键,同时将这个键对应的值递增1
2 计算最少删除的元素数量时,如果当前键大于值,那么就将这个键清零;如果值大于键,那么就删除多余的

2.2 代码:

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, int> myMap;
   int n;
   scanf("%d", &n);
   int data;
   for(int i = 0; i < n; i++) {
       scanf("%d", &data);
       myMap[data]++;
   }
   int count = 0;
   for(const auto& pair : myMap) {
       cout << pair.first << ' ' << pair.second << endl;
       if(pair.first < pair.second) {
           count += (pair.second - pair.second);
       }
       else if(pair.first > pair.second) {
           count += pair.second;
       }
   }
   cout << count << endl;
   return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/173558.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu Server download

前言 Ubuntu——公共云、数据中心和边缘上最受欢迎的 Linux 发行版。自成立以来&#xff0c;Ubuntu 一直在获得市场份额&#xff0c;截至今天已接近 50%。 Ubuntu Server download VersionUbuntu Server 其它主机型号版本Ubuntu AMD历史版下载百度云Ubuntu Server all Ubuntu…

小白也能看懂的国内外 AI 芯片概述

随着越来越多的企业将人工智能应用于其产品&#xff0c;AI芯片需求快速增长&#xff0c;市场规模增长显著。因此&#xff0c;本文主要针对目前市场上的AI芯片厂商及其产品进行简要概述。 简介 AI芯片也被称为AI加速器或计算卡&#xff0c;从广义上讲只要能够运行人工智能算法…

本机idea连接虚拟机中的Hbase

相关环境&#xff1a; 虚拟机&#xff1a;Centos7 hadoop版本:3.1.3 hbase版本:2.4.11 zookeeper版本:3.5.7 Java IDE:IDEA JDK&#xff1a;8 步骤 步骤一&#xff1a;在idea创建一个maven项目 步骤二&#xff1a;在虚拟机里找到core-site.x…

【C++】map multimap

文章目录 1.map介绍2.map的使用3.multimap介绍4.multimap的使用 1.map介绍 map的文档 翻译&#xff1a; map是关联容器&#xff0c;它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。 在map中&#xff0c;键值key通常用于排序和惟一地标识元素&#x…

四川芸鹰蓬飞:抖店运营的时候注意什么?

抖店作为一个短视频平台&#xff0c;吸引了越来越多的商家加入。在抖店上进行有效的运营是提高销量和曝光度的关键。那么&#xff0c;抖店怎么设置运营呢&#xff1f;有哪些方法可以帮助商家在这个竞争激烈的平台上脱颖而出呢&#xff1f; 一、抖店怎么设置运营&#xff1f; 首…

VC++添加包含目录

安装了QT;它带有很多例子; 新建一个工程,添加一个C++源文件,随便拷个例子的源码过来; 然后VS会提示头2个include语句出错; 因为找不到这两个头文件;这需要添加包含目录; 进入项目属性页;VC++目录 - 包含目录,它之前有2个系统的值;点击右侧的下拉箭头按钮,点…

天空分割技术解决方案

图像处理技术已经成为企业提升用户体验、优化产品和服务的重要工具。美摄科技&#xff0c;作为全球领先的AI图像处理技术提供商&#xff0c;一直致力于研发和应用最先进的技术&#xff0c;以满足企业的各种需求。今天&#xff0c;我们很高兴地向大家介绍我们的新一代产品——美…

【PTA题目】L1-4 稳赢 分数 15

L1-4 稳赢 分数 15 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 大家应该都会玩“锤子剪刀布”的游戏&#xff1a;两人同时给出手势&#xff0c;胜负规则如图所示&#xff1a; 现要求你编写一个稳赢不输的程序&#xff0c;根据对方的出招&#xff0c;给出对应的赢招。但…

AR远程辅助技术应用到气象部门有何好处?

随着科技的不断发展&#xff0c;人类对于自然环境的理解和掌控能力也在不断提升。其中&#xff0c;AR(增强现实)技术的应用&#xff0c;为气象监控带来了革命性的变化。AR气象远程监控&#xff0c;就是将AR技术与气象监控相结合&#xff0c;通过虚拟与现实的融合&#xff0c;实…

数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大痛点分析

数字化时代银行网点厅堂营销存在以下5大痛点&#xff1a; 1、业务办理时间较长。目前很多银行业务办理时间仍然较长&#xff0c;可能的原因包括银行业务办理流程比较复杂、柜员操作技能不够熟练、银行系统的稳定性欠佳、网点某段时间客户比较多等。 2、现场提交材料太多。银行…

事件溯源(Event Sourcing)和命令查询责任分离(CQRS)经验

这篇文章是实现一个基于 CQRS 和事件溯源原则的应用程序&#xff0c;描述这个过程的方式&#xff0c;我相信分享我面临的挑战和问题可能对一些人有用。特别是如果你正在开始自己的旅程。 业务背景 项目的背景与空中交通管理&#xff08;ATM&#xff09;领域相关。我们为一个 …

Spring框架学习 -- 核心思想

目录 (1) Spring是什么? (2) 什么是IOC容器? (3) 从传统开发认识spring (4) 这种传统开发的缺陷 (5)解决传统开发中的缺陷 (6) 对比总结规律 (7) 理解IOC 创作不易多多支持 (1) Spring是什么? 我们常说的Spring的全称是: Spring Framework(Spring框架), 它是一个开源…

ueditor整合到thinkPHP里

<?phpnamespace app\ueditor\controller;use think\Controller;class Ueditor extends Controller {//首页public function upload(){//header(Access-Control-Allow-Origin: http://www.baidu.com); //设置http://www.baidu.com允许跨域访问//header(Access-Control-Allow…

基于人工大猩猩部队算法优化概率神经网络PNN的分类预测 - 附代码

基于人工大猩猩部队算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于人工大猩猩部队算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于人工大猩猩部队优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&a…

Linux操作系统使用及C高级编程-D11-D13结构体

由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员”&#xff0c;其描述了一块内存空间的大小及解释意义。 语法&#xff1a; struct 结构体名 { 结构体成员列表 }; 下图是struct的定义和使用方法&#xff0c;其中20行这种赋值方式错误&#xf…

c语言上机作业:迭代法求平方根

1.题目 设计一个函数func用迭代法编程求一个数的平方根。平方根的迭代公式为&#xff1a;牛顿迭代法&#xff0c;(要求前后两次迭代值求差的绝对值小于10的-9次方) 2.思路 a.这里要求我们设置一个函数能够完成牛顿迭代法&#xff0c;这里需要使用到函数迭代的知识&#xff0…

时间复杂度与空间复杂度

我们知道算法的效率分为时间效率和空间效率&#xff0c;接下来我们就对这两者进行讨论。 一.时间复杂度. 又被称为时间效率&#xff0c;主要反映一个算法的运行速度。 定义&#xff1a;计算机算法中&#xff0c;算法的时间复杂度是一个函数&#xff0c;它定量描述了该算法的…

excel自定义函数之汉字转为拼音及大写字母

使用场景&#xff1a;想把姓名转化为拼音格式&#xff0c;然后拼音转为大写字母 至于怎么在excel里面自定义函数&#xff0c;自行百度都有&#xff0c;这里简单截图看看。 步骤&#xff1a;文件》选项》自定义功能区》 打开编辑窗口 把下面这段代码粘贴就能实现汉字转化为拼音…

Vulnhub 解决虚拟机网络问题

前言&#xff1a; 有的时候&#xff0c;我们从vulnhub官网下载ovf文件导入到虚拟机后&#xff0c;使用扫描器扫描存活的时候发现扫不到靶机的IP&#xff0c;这是因为虚拟机的网卡配置有问题。我们需要进安全模式修改一些配置。 1. 在虚拟机开机的时候按一下上下键&#xff0c;让…

FreeRTOS内存管理分析

目录 heap_1.c内存管理算法 heap_2.c内存管理算法 heap_3.c内存管理算法 heap_4.c内存管理算法 heap_5.c内存管理算法 内存管理对应用程序和操作系统来说非常重要&#xff0c;而内存对于嵌入式系统来说是寸土寸金的资源&#xff0c;FreeRTOS操作系统将内核与内存管理分开实…