C++之map容器

C++之map容器

在这里插入图片描述

map构造和赋值

在这里插入图片描述

#include<iostream>
#include<string>
using namespace std;
#include<map>void printMap(map<int,int>&m)
{for (map<int,int>::iterator it = m.begin();it != m.end();it++){//cout <<"key is: "<< (*it).first << " value is "<<(*it).second<<endl;cout << "key is: " << it->first << " value is " << it->second << endl;}cout << endl;
}void test()
{//创建map容器map<int, int>m;m.insert(pair<int, int>(1, 10));m.insert(pair<int, int>(2, 50));m.insert(pair<int, int>(3, 30));m.insert(pair<int, int>(4, 20));m.insert(pair<int, int>(5, 40));printMap(m);//拷贝构造map<int, int>m2(m);printMap(m2);//赋值map<int, int>m3;m3 = m;printMap(m3);
}int main()
{test();system("pause");return 0;
}

在这里插入图片描述

map大小和交换

在这里插入图片描述

#include<iostream>
#include<string>
using namespace std;
#include<map>void printMap(map<int,int>&m)
{for (map<int,int>::iterator it = m.begin();it != m.end();it++){//cout <<"key is: "<< (*it).first << " value is "<<(*it).second<<endl;cout << "key is: " << it->first << " value is " << it->second << endl;}cout << endl;
}void test()
{//创建map容器map<int, int>m;m.insert(pair<int, int>(1, 10));m.insert(pair<int, int>(2, 50));m.insert(pair<int, int>(3, 30));m.insert(pair<int, int>(4, 20));m.insert(pair<int, int>(5, 40));printMap(m);if (m.empty()){cout << "m is empty" << endl;}else{cout << "m is not empty" << endl;cout << "m's size is" << m.size() << endl;}map<int, int>m2;m2.insert(pair<int, int>(1, 100));m2.insert(pair<int, int>(2, 500));m2.insert(pair<int, int>(3, 300));m2.insert(pair<int, int>(4, 200));m2.insert(pair<int, int>(5, 400));cout << "before swap" << endl;printMap(m);printMap(m2);m2.swap(m);cout << "after swap" << endl;printMap(m);printMap(m2);
}int main()
{test();system("pause");return 0;
}

在这里插入图片描述

map插入和删除

在这里插入图片描述

#include<iostream>
#include<string>
using namespace std;
#include<map>void printMap(map<int,int>&m)
{for (map<int,int>::iterator it = m.begin();it != m.end();it++){//cout <<"key is: "<< (*it).first << " value is "<<(*it).second<<endl;cout << "key is: " << it->first << " value is " << it->second << endl;}cout << endl;
}void test()
{//创建map容器map<int, int>m;//插入//第一种m.insert(pair<int, int>(1, 10));//第二种m.insert(make_pair(2, 50));//第三种m.insert(map<int, int>::value_type(3, 30));//第四种  不建议使用 用途:使用Key找到valuem[4] = 20;printMap(m);//删除m.erase(m.begin());printMap(m);m.erase(2);//按照key值删除printMap(m);//清空//m.erase(m.begin(),m.end());m.clear();printMap(m);
}int main()
{test();system("pause");return 0;
}

在这里插入图片描述

map查找和统计

在这里插入图片描述

#include<iostream>
#include<string>
using namespace std;
#include<map>void printMap(map<int,int>&m)
{for (map<int,int>::iterator it = m.begin();it != m.end();it++){//cout <<"key is: "<< (*it).first << " value is "<<(*it).second<<endl;cout << "key is: " << it->first << " value is " << it->second << endl;}cout << endl;
}void test()
{//创建map容器map<int, int>m;//插入m.insert(pair<int, int>(1, 10));m.insert(pair<int, int>(2, 50));m.insert(pair<int, int>(3, 30));m.insert(pair<int, int>(4, 20));printMap(m);map<int,int>::iterator pos= m.find(2);if (pos != m.end()){cout << "找到了:key is " << pos->first << " value is " << (*pos).second << endl;}else{cout << "没有找到" << endl;}
//map不允许插入重复key 元素 ,count统计而言 结果要么是0 要么是1 
//multimap的count统计可能大于1//统计int num = m.count(3);//按照key查找cout << "num is " << num << endl;
}int main()
{test();system("pause");return 0;
}

在这里插入图片描述

map容器排序

在这里插入图片描述

#include<iostream>
#include<string>
using namespace std;
#include<map>class MyCompare
{
public:bool operator()(int v1, int v2){return v1 > v2;}
};void test()
{//创建map容器map<int, int, MyCompare>m;//插入m.insert(make_pair<int, int>(1, 10));m.insert(make_pair<int, int>(2, 50));m.insert(make_pair<int, int>(3, 30));m.insert(make_pair<int, int>(4, 20));for (map<int, int, MyCompare>::iterator it = m.begin();it != m.end();it++){//cout <<"key is: "<< (*it).first << " value is "<<(*it).second<<endl;cout << "key is: " << it->first << " value is " << it->second << endl;}cout << endl;}int main()
{test();system("pause");return 0;
}

在这里插入图片描述

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

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

相关文章

vue --version无法显示,只弹出vs窗口

参考连接&#xff1a; nodejs环境配置&#xff08;解压包&#xff09;安装教程_nodejs解压版安装及环境配置_tubond的博客-CSDN博客 原因&#xff1a;环境没搞好&#xff0c;没有设置全局文件夹&#xff0c;node默认放在C盘了&#xff0c;C盘有权限。因为npm -i vue/cli创建…

[acwing周赛复盘] 第 94 场周赛20230311

[acwing周赛复盘] 第 94 场周赛20231118 总结5295. 三元组1. 题目描述2. 思路分析3. 代码实现 5296. 边的定向1. 题目描述2. 思路分析3. 代码实现 六、参考链接 总结 好久没做acw了&#xff0c;挺难的。T1 模拟T2 前缀和以及优化。T3 贪心 5295. 三元组 链接: 5295. 三元组…

Redis面经

Redis使用场景 1、缓存&#xff1a; 缓存三兄弟(穿透、击穿、雪崩) 、双写一致、持久化、数据过期策略&#xff0c;数据淘汰策略 2、分布式锁 setnx、redisson 3、消息队列 4、延迟队列 何种数据类型&#xff08;list、zset&#xff09; 缓存三兄弟 缓存穿透 缓存穿透…

信创之路数据库人大金仓篇

概要 信创大势所趋&#xff0c;吾等上下求索 参考文档 Linux&#xff1a;人大金仓数据库-KingBaseES V8与 php7的连接配置 laravel9适配人大金仓&#xff08;kingbase&#xff09;数据库 thinkphp6适配人大金仓&#xff08;Kingbase&#xff09;数据库 数据库选型 目前比较…

kafka入门(一):kafka消息消费

安装kafka&#xff0c;创建 topic&#xff1a; Windows安装kafka, 详情见&#xff1a;https://blog.csdn.net/sinat_32502451/article/details/133067851 Linux 安装kafka&#xff0c;详情见&#xff1a;https://blog.csdn.net/sinat_32502451/article/details/133080353 添…

[Docker]六.Docker自动部署nodejs以及golang项目

一.自动部署nodejs 1.创建node项目相关文件 app.js代码如下: var express require(express);var appexpress();app.get(/,function(req,res){res.send(首页update); }) app.get(/news,function(req,res){res.send(首页); })//docker做端口映射的时候不要指定ip app.listen(30…

智能指针面试题

智能指针被问到的概率还是很大的&#xff0c;特别是Shared_ptr&#xff0c;最好会手撕&#xff0c;亲身经历&#xff01; 基本概念 1. RAll RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是一种利用对象生命周期来控制程序资源&#xff08;如内存、文…

解决更换NodeJs版本后npm -v返回空白

一、问题描述 win11电脑上输入cmd进入控制台&#xff0c;输入 node --version 有正常返回安装的nodejs的版本号 再输入 npm -v 返回空白。正常情况应该是要返回版本号。 二、问题背景 最近准备学习vue&#xff0c;在不久前已经安装了NodeJs和python。运行了好几个开源项…

Git配置代理:fatal: unable to access*** github Failure when receiving data from

~吐槽一下 github自从被微软收购以后&#xff0c;大多数情况没点科技上网都进不去了&#xff0c;还是怀念以前随时访问的时光。 我一直都是开着系统代理的&#xff0c;但是今天拉一个项目发现拉不下来了&#xff0c;报错&#xff1a; fatal: unable to access https://githu…

Maven介绍及仓库配置

目录 一.Maven 1.介绍 坐标 仓库 1&#xff09;中央仓库 2&#xff09;本地仓库 3&#xff09;私服 配置国内源 配置过程 二.Maven功能 2.项目构建 3.依赖管理 Maven Help插件 安装 ​使用 一.Maven 1.介绍 坐标 唯一的&#xff0c;通过以下代码的三个键值对确…

搜索引擎ElasticSearch分布式搜索和分析引擎学习,SpringBoot整合ES个人心得

ElasticSearch Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口。Elasticsearch是用Java语言开发的&#xff0c;并作为Apache许可条款下的开放源码发布&#xff0c;是一种流行的企业级搜索引擎。Elas…

tomcat8.5处理get请求时,控制台输出中文乱码问题的解决

问题描述 控制台输出中文乱码 版本信息 我使用的是tomcat8.5 问题解决 配置web.xml 注&#xff1a;SpringMVC中处理编码的过滤器一定要配置到其他过滤器之前&#xff0c;否则无效 <!--配置springMVC的编码过滤器--> <filter><filter-name>CharacterEn…

【机器学习】决策树算法理论:算法原理、信息熵、信息增益、预剪枝、后剪枝、算法选择

1. 决策树概念 通过不断的划分条件来进行分类&#xff0c;决策树最关键的是找出那些对结果影响最大的条件&#xff0c;放到前面。 我举个列子来帮助大家理解&#xff0c;我现在给我女儿介绍了一个相亲对象&#xff0c;她根据下面这张决策树图来进行选择。比如年龄是女儿择偶更…

【考研复习】二叉树的特殊存储|三叉链表存储二叉树、一维数组存储二叉树、线索二叉树

文章目录 三叉链表存储二叉树三叉链表的前序遍历&#xff08;不使用栈&#xff09;法一三叉链表的前序遍历&#xff08;不使用栈&#xff09;法二 一维数组存储二叉树一维数组存储二叉树的先序遍历 线索二叉树的建立中序线索二叉树的遍历 真题演练 三叉链表存储二叉树 三叉链表…

安装 eslint 配置指南 及 遇到的一些问题记录

前端eslint配置指南 背景 当前前端项目风格混乱&#xff0c;每个人有自己的开发习惯&#xff0c;有自己的格式化习惯&#xff0c;不便于项目的风格统一&#xff0c;不利于代码维护有的项目eslint没有用起来&#xff0c;没有起到规范代码的作用&#xff0c;导致出现一些基础代码…

操作系统秋招面试题

自己在秋招过程中遇到的高频操作系统相关的面试题 内存管理 虚拟内存 虚拟内存的⽬的是为了让物理内存扩充成更⼤的逻辑内存&#xff0c;从⽽让程序获得更多的可⽤内存。 为了更好的管理内存&#xff0c;操作系统将内存抽象成地址空间。每个程序拥有⾃⼰的地址空间&#xff…

受电诱骗快充取电芯片XSP08:PD+QC+华为+三星多种协议9V12V15V20V

目前市面上很多家的快充充电器&#xff0c;都有自己的私有快充协议&#xff0c;如PD协议、QC协议、华为快充协议、三星快充协议、OPPO快充协议等待&#xff0c;为了让它们都能输出快充电压&#xff0c;就需要在受电端也增加快充协议取电芯片XSP08&#xff0c;它可以和充电器通讯…

Uniapp导出的iOS应用上架详解

​ 目录 Uniapp导出的iOS应用上架详解 摘要 引言 苹果审核标准 苹果调试 注意事项和建议 总结 摘要 本文将探讨Uniapp导出的iOS应用能否成功上架的问题。我们将从苹果审核标准、性能影响、调试流程等多个方面进行深入分析&#xff0c;以及向开发者提供相关注意事项和建…

os.path.join函数用法

os.path.join()是Python中用于拼接文件路径的函数&#xff0c;它可以将多个字符串拼接成一个路径&#xff0c;并且会根据操作系统的规则自动使用合适的路径分隔符。 注&#xff1a;Linux用的是/分隔符&#xff0c;而Windows才用的是\。 该函数属于os.path模块&#xff0c;因此在…

Ajax 之XMLHttpRequest讲解

一直以来都听别人说Ajax,今天终于接触到了。。。。。。。。。。 一.什么是Ajax? 答: AJAX即“Asynchronous Javascript And XML”&#xff08;异步JavaScript和XML&#xff09;&#xff0c;是指一种创建交互式网页应用的网页开发技术。 AJAX 异步 JavaScript和XML&#x…