【C++】map/multimap容器

1.map基本概念

在这里插入图片描述

2.map构造和赋值

在这里插入图片描述

#include <iostream>
using namespace std;//map容器 构造和赋值
#include<map>//遍历输出map容器
void printMap(const map<int, int>& m)
{for (map<int, int>::const_iterator it = m.begin(); it != m.end(); it++){cout << "key = " << (*it).first << "value = " << it->second << endl;}cout << endl;
}void test01()
{//创建map容器map<int, int>m;//按照key值自动排序m.insert(pair<int, int>(1, 10));m.insert(pair<int, int>(3, 30));m.insert(pair<int, int>(2, 20));m.insert(pair<int, int>(4, 40));printMap(m);//拷贝构造map<int, int>m2(m);printMap(m2);//赋值map<int, int>m3;m3 = m2;printMap(m3);
}int main()
{test01();//cout << "-------------" << endl << endl;//test02();//**************************************system("pause");return 0;
} 

在这里插入图片描述

3.map大小和交换

在这里插入图片描述

#include <iostream>
using namespace std;//map容器 大小和交换
#include<map>void printMap(map<int, int>& m)
{for (map<int, int>::iterator it = m.begin(); it != m.end(); it++){cout << "key = " << (*it).first << "    value = " << it->second << endl;}cout << endl;
}//大小
void test01()
{map<int, int>m;m.insert(pair<int, int>(1, 10));m.insert(pair<int, int>(3, 30));m.insert(pair<int, int>(2, 20));if (m.empty()){cout << "m为空!" << endl;}else{cout << "size of m : " << m.size() << endl;}
}//交换
void test02()
{map<int, int>m;m.insert(pair<int, int>(1, 10));m.insert(pair<int, int>(3, 30));m.insert(pair<int, int>(2, 20));map<int, int>m2;m2.insert(pair<int, int>(4, 100));m2.insert(pair<int, int>(6, 300));m2.insert(pair<int, int>(5, 200));cout << "交换前:" << endl;printMap(m);printMap(m2);//m与m2交换m.swap(m2);cout << "交换后:" << endl;printMap(m);printMap(m2);
}int main()
{test01();cout << "-------------" << endl << endl;test02();//**************************************system("pause");return 0;
} 

在这里插入图片描述

4.map插入和删除

在这里插入图片描述
在这里插入图片描述

#include <iostream>
using namespace std;//map容器 插入和删除
#include<map>void printMap(map<int, int>& m)
{for (map<int, int>::iterator it = m.begin(); it != m.end(); it++){cout << "key = " << (*it).first << "  value = " << it->second << endl;}cout << endl;
}void test01()
{//创建map容器map<int, int>m;//插入//第一种m.insert(pair<int, int>(1, 10));//第二种m.insert(make_pair(2, 20));//第三种m.insert(map<int, int>::value_type(3, 30));//第四种m[4] = 40;//[]不建议插入, []其用途 可以利用可以访问到value//cout << m[5] <<endl; //输出了" key = 5   value = 0 "printMap(m);//删除m.erase(m.begin());printMap(m);m.erase(3); //按照key删除printMap(m);//清空m.erase(m.begin(), m.end());m.clear();printMap(m);
}int main()
{test01();//cout << "-------------" << endl << endl;//test02();//**************************************system("pause");return 0;
} 

在这里插入图片描述

5.map查找和统计

在这里插入图片描述
在这里插入图片描述

#include <iostream>
using namespace std;//map容器 查找和统计
#include<map>
void test01()
{//查找map<int, int>m;m.insert(make_pair(1, 10));m.insert(make_pair(3, 30));m.insert(make_pair(2, 20));m.insert(make_pair(2, 40)); // 不能插入重复元素(以key为标准)map<int, int>::iterator pos = m.find(3);if (pos != m.end()){cout << "找到了该元素  key = " << (*pos).first << " value = " << pos->second << endl;}else{cout << "no find this element" << endl;}//统计//map不允许插入重复元素, count统计而言 结果只能是0或1//multimap的count统计可能大于1int num = m.count(2);cout << "num = " << num << endl;
}int main()
{test01();//cout << "-------------" << endl << endl;//test02();//**************************************system("pause");return 0;
} 

在这里插入图片描述

6.map容器排序

在这里插入图片描述
在这里插入图片描述

#include <iostream>
using namespace std;//map容器 排序
#include<map>class MyCompare
{
public:bool operator()(int v1, int v2) const{return v1 > v2; // 降序}
};void test01()
{//默认从小到大排序//利用仿函数实现从小到大排序map<int, int, MyCompare> m;m.insert(make_pair(1, 10));m.insert(make_pair(3, 30));m.insert(make_pair(2, 20));for (map<int, int, MyCompare>::iterator it = m.begin(); it != m.end(); it++){cout << "key = " << it->first << "   value = " << it->second << endl;}
}int main()
{test01();//cout << "-------------" << endl << endl;//test02();//**************************************system("pause");return 0;
} 

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP多语言代入电商平台api接口采集拼多多根据ID获取商品详情原数据示例

拼多多商品详情原数据API接口的作用是获取拼多多电商平台上某一商品的详细信息&#xff0c;包括商品的标题、价格、库存、图片、描述、包邮信息、销量、评价、优惠券等数据。通过该API接口可以获取到商品的原始数据&#xff0c;用于分析、筛选和展示商品信息。 pinduoduo.item…

Python飞机大战小游戏

游戏规则&#xff1a;键盘上下左右键控制飞机移动 游戏展示图片&#xff1a; 源码&#xff1a; 第一个py命名为&#xff1a;plane_main.py import pygamefrom plane_sprites import *class PlaneGame(object):# """飞机大战主游戏"""def __in…

Python爬取京东商品评论

寻找数据真实接口 打开京东商品网址查看商品评价。我们点击评论翻页&#xff0c;发现网址未发生变化&#xff0c;说明该网页是动态网页。 API名称&#xff1a;item_review-获得JD商品评论 公共参数 获取API测试key&secret 名称类型必须描述keyString是调用key&#xff…

JVM下篇知识

第01章&#xff1a;概述篇 第02章&#xff1a;JVM监控及诊断工具-命令行篇 第03章&#xff1a;JVM监控及诊断工具-GUI篇 第04章&#xff1a;JVM运行时参数 第05章&#xff1a;分析GC日志

Weblogic漏洞(一)之 Weblogic基本介绍

Weblogic基本介绍 WebLogic是美国Oracle公司出品的一个application server&#xff0c;确切的说是一个基于JAVAEE架构的中间件&#xff0c;WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise…

linuxdeploy安装CentOS7搭建django服务

目录 一、busybox安装 二、linuxdeploy安装 三、linuxdeploy软件设置及安装 四、CentOS基础环境配置 五、CentOS7 上安装Python3.8.10 六、systemctl的替代品 七、CentOS7 上安装mysql5.2.27数据库 八、CentOS7 上安装Nginx服务 九、Django项目应用部署 参考文献: 一…

【LeetCode】剑指 Offer <二刷>(3)

目录 题目&#xff1a;剑指 Offer 06. 从尾到头打印链表 - 力扣&#xff08;LeetCode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 07. 重建二叉树 - 力扣&#xf…

ssm农业视频实时发布管理系统源码

ssm农业视频实时发布管理系统源码108 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm package com.controller;import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; impo…

基于JAVA SpringBoot和HTML婴幼儿商品商城设计

摘要 随着网络技术的发展与普遍,人们的生活发生了日新月异的变化,特别是计算机的应用已经普及到经济和社会的各个领域.为了让消费者网上购物过程变得简单,方便,安全,快捷,网上商城购物成了一种新型而热门的购物方式。网上商城在商品销售的发展中占据了重要的地位,已成为商家展示…

VS插件DevExpress CodeRush v23.1 - 支持Visual Studio ARM

DevExpress CodeRush是一个强大的Visual Studio .NET 插件&#xff0c;它利用整合技术&#xff0c;通过促进开发者和团队效率来提升开发者体验。CodeRush能帮助你以极高的效率创建和维护源代码。Consume-first 申明&#xff0c;强大的模板&#xff0c;智能的选择工具&#xff0…

【IEEE会议】第五届信息与计算机前沿技术国际学术会议(ICFTIC 2023)

第五届信息与计算机前沿技术国际学术会议(ICFTIC 2023) 2023 5th International Conference on Frontiers Technology of Information and Computer 第五届信息与计算机前沿技术国际学术会议(ICFTIC 2023)将在中国青岛举行&#xff0c; 会期是2023年11月17-19日&#xff0c;…

关于亚马逊云科技云技能孵化营学习心得

1、活动介绍 本活动主要是面向想要全面了解亚马逊云科技 (Amazon Web Services) 云的个人&#xff0c;而不受特定技术角色的限制。内容包括亚马逊云科技云概念、亚马逊云科技服务、安全性、架构、定价和支持等等&#xff0c;此外还可以参加亚马逊的认证考试。 2、学习过程 该…

16.CSS菜单悬停特效

效果 源码 <!DOCTYPE html> <html> <head> <title>Creative Menu Item Hover Effects</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body><section><…

java八股文面试[多线程]——进程与线程的区别

定义 1、进程&#xff1a;进程是一个具有独立功能的程序关于某个数据集合的以此运行活动。 是系统进行资源分配和调度的独立单位&#xff0c;也是基本的执行单元。是一个动态的概念&#xff0c;是一个活动的实体。它不只是程序的代码&#xff0c;还包括当前的活动。 进程结构…

Discuz!论坛发帖标题字数限制80字符可以修改吗?修改发帖标题字数的方法

Discuz!论坛发帖标题字数限制80字符修改方法 1.数据库修改2.修改JS验证字符数文件3.修改模板中写死的字符限制数4.修改函数验证文件5.修改语言包文件6.更新缓存 Discuz X3.4论坛网站帖子标题字数限制80字符&#xff0c;当我们想使用长标题的时候就得一删再删&#xff0c;实在是…

kaggle新赛:谷歌AI模型运行时间预测赛题解析【数据挖掘】

赛题名称&#xff1a;Google - Fast or Slow? Predict AI Model Runtime 赛题链接&#xff1a;https://www.kaggle.com/competitions/predict-ai-model-runtime 赛题背景 Alice 是一名 AI 模型开发人员&#xff0c;但她的团队开发的一些模型运行速度非常慢。她最近发现了编…

软件测试技术分享丨使用Postman搞定各种接口token实战

现在许多项目都使用jwt来实现用户登录和数据权限&#xff0c;校验过用户的用户名和密码后&#xff0c;会向用户响应一段经过加密的token&#xff0c;在这段token中可能储存了数据权限等&#xff0c;在后期的访问中&#xff0c;需要携带这段token&#xff0c;后台解析这段token才…

git 忽略已经提交的文件或文件夹 (修改.gitignore文件无效)

场景描述&#xff1a;项目开发到一半&#xff0c;追加了模块&#xff0c;提交的时候未注意将不需要提交的文件或者目录提交到.gitignore&#xff0c;然后提交后发现再修改git配置文件已无法阻拦更新&#xff0c;查阅官方资料&#xff1a; 核心点&#xff1a;.gitignore 之前&a…

【LeetCode-中等题】142. 环形链表 II

文章目录 题目方法一&#xff1a;哈希表set去重方法二&#xff1a;快慢指针 题目 方法一&#xff1a;哈希表set去重 思路&#xff1a;我们遍历链表中的每个节点&#xff0c;并将它记录下来&#xff1b;一旦遇到了此前遍历过的节点&#xff0c;就可以判定链表中存在环。借助哈希…

前端加springboot实现Web Socket连接通讯以及测试流程(包括后端实现心跳检测)

【2023】前端加springboot实现Web Socket连接通讯&#xff08;包括后端实现心跳检测&#xff09; 前言一、Web Socket 简绍1 为什么用 websocket&#xff1f; 二、代码实现1、前端&#xff08;html&#xff09;1.1、无前端向后端发送消息1.2、有前端向后端发送消息 2、后端具体…