map容器
目录
map构造和赋值
map大小和交换
map插入和删除
map查找和统计
map排序
map构造和赋值
map中所有元素都是pair(即一对)
pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)
所有元素根据元素键值自动排序
//author:至尊宝
//time:2024.5.9
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
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>(2, 20));m.insert(pair<int, int>(3, 30));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();
}
map大小和交换
size()返回容器中元素的数目
empty()判断容器是否为空
swap()交换两个集合容器
//author:至尊宝
//time:2024.5.9
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
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>(2, 20));m.insert(pair<int, int>(3, 30));if (m.empty()){cout << "m为空" << endl;}else{cout << "m不为空" << endl;cout << "m的大小为:" << m.size() << endl;}
}
//交换
void test02()
{map<int, int>m;m.insert(pair<int, int>(1, 10));m.insert(pair<int, int>(2, 20));m.insert(pair<int, int>(3, 30));map<int, int>m2;m2.insert(pair<int, int>(4, 100));m2.insert(pair<int, int>(5, 200));m2.insert(pair<int, int>(6, 300));cout << "交换前:" << endl;printMap(m); printMap(m2);cout << "交换后:" << endl;m.swap(m2);printMap(m); printMap(m2);
}int main()
{test02();
}
map插入和删除
insert()在容器中插入元素
clear()清除所有元素
erase(pos)删除pos迭代器所指的元素,返回下一个元素的迭代器
erase(beg,end)删除区间beg,end的所有元素,返回下一个元素的迭代器
erase(key)删除容器中值为key的元素
//author:至尊宝
//time:2024.5.9
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
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(make_pair(2, 20));m.insert(map<int, int>::value_type(3, 30));m[4] = 40;//删除m.erase(m.begin());printMap(m);m.erase(3);//按照key来删printMap(m);m.erase(m.begin(), m.end());//==m.clear()printMap(m);
}
//交换
void test02()
{}int main()
{test01();
}
map查找和统计
find(key)查找key是否存在,返回该键的元素的迭代器,若不存在,返回set.end()
count(key)统计key元素个数
//author:至尊宝
//time:2024.5.9
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
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>(2, 20));m.insert(pair<int, int>(3, 30));map<int, int>::iterator pos = m.find(3);if (pos != m.end()){cout << "找到了元素:key = " << (*pos).first << " value = " << (*pos).second << endl;}else{cout << "no" << endl;}//统计//map不允许插入重复的key元素int num = m.count(3);cout << num;
}
void test02()
{}int main()
{test01();
}
map排序
//author:至尊宝
//time:2024.5.9
#include<iostream>
#include<cstring>
#include<map>
using namespace std;
class MyCompare
{
public:bool operator()(int v1,int v2)const{//降序return v1 > v2;}
};
void test01()
{map<int, int, MyCompare>m;m.insert(pair<int, int>(1, 10));m.insert(make_pair(2, 20));m.insert(make_pair(3, 30));m.insert(make_pair(4, 40));m.insert(make_pair(5, 50));m.insert(make_pair(6, 60));for (map<int, int, MyCompare>::iterator it = m.begin(); it != m.end(); it++){cout << "key = " << it->first << " value = " << it->second << endl;}}int main()
{test01();
}
相关文章:
map容器
目录 map构造和赋值 map大小和交换 map插入和删除 map查找和统计 map排序 map构造和赋值 map中所有元素都是pair(即一对) pair中第一个元素为key(键值),起到索引作用,第二个元素为value(…...
GNU/Linux - 是否可以多次打开同一个设备文件
使用设备/dev/ttyS1举例来说明。 一个设备文件打开多次 在 Linux 中,多次打开 /dev/ttyS1 以读取数据通常是可以接受的。多次打开 /dev/ttyS1 并向 /dev/ttyS1 发送数据时,所有打开的文件描述符都能接收数据。每个打开的文件描述符都代表与串行端口的独立…...

Visual Studio的使用方法
目录 1. 下载软件 2. 软件安装 3. 软件使用 4. VS工具的字体背景美化 5. 程序调试 1. 下载软件 官网地址:Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com) 2. 软件安装 1.选中vs_Professional,鼠标右击选择“以管理员身份…...

【35分钟掌握金融风控策略18】贷前风控策略详解-3
目录 编辑 贷前风控数据源 第三方数据 贷前风控数据源 第三方数据 在金融风控过程中,金融机构通常会引入一些第三方的风控数据(或第三方金融技术)来辅助识别贷款个人或贷款企业的风险状况,帮助金融机构进行风控决策&#x…...
秋招后端开发面试题 - MySQL事务
目录 MySQL事务前言面试题什么是数据库事务为什么要有事务呢?项目中遇到的事务事务的传播机制事务的特性?事务并发存在的问题四大隔离级别四大隔离级别,都会存在哪些并发问题呢数据库是如何保证事务的隔离性的呢?如何解决加锁后的…...

C语言栈的含义与栈数据操作代码详解!
引言:在本篇博客中,我们将学到数据结构——栈,讲到栈的含义与关于栈的数据操作代码。栈可以在顺序表、双向链表以及单链表的基础上实现,而于本篇博客中,我们选择在顺序表的基础上实现栈。 更多有关C语言和数据结构知识…...

数据库基础语法二
一、数据库 1、登陆数据库 2、创建数据库zoo 3、修改数据库zoo字符集为gbk 4、选择当前数据库为zoo 5、查看创建数据库zoo信息 6、删除数据库zoo mysql -uroot -p #登陆数据库 create database zoo; #创建数据库zoo alter database zoo character set gbk collate gbk_…...
数据库的一些知识点
在Sno between列上创建约束,要求Sno的值在18至22岁之间,约束名Sno_CK。请写出对应的完整性命名子句constraint Sno_CK primary key check and。 本题得分: 0分 正确答案: 填空1 : 学号填空2 : snobetween18and22 2.单选题 (12分) 下述SQL命令的短语中…...

[AutoSar]BSW_Com021单帧 首帧 流控帧 连续帧 详解
目录 关键词平台说明一、N_PDU和N_PCI二、单帧三、首帧四、流控帧五、连续帧六、case 关键词 嵌入式、C语言、autosar、OS、BSW、UDS、diagnostic 平台说明 项目ValueOSautosar OSautosar厂商vector , EB芯片厂商TI 英飞凌编程语言C,C编译器HighTec (…...

CSS学习笔记之中级教程(一)
1、CSS 布局 - display 属性 1.1 display 属性 display 属性是用于控制布局的最重要的 CSS 属性。 display 属性规定是否/如何显示元素。 每个 HTML 元素都有一个默认的 display 值,具体取决于它的元素类型。大多数元素的默认 display 值为 block 或 inline。 …...

Spring Cloud Alibaba 网关 Gateway 集成(7)
项目的源码地址 Spring Cloud Alibaba 工程搭建(1) Spring Cloud Alibaba 工程搭建连接数据库(2) Spring Cloud Alibaba 集成 nacos 以及整合 Ribbon 与 Feign 实现负载调用(3) Spring Cloud Alibaba Ribbo…...
低代码技术赋能未来乡村建设:创新与实践
引言 随着我国新型城镇化进程的推进,乡村建设正面临着前所未有的挑战。如何在有限的人力、物力、财力资源下,高效推动乡村建设,实现城乡一体化发展,成为当下亟待解决的问题。低代码技术作为一种创新性的解决方案,为未来…...

基于Springboot的房屋租赁管理系统(有报告)。Javaee项目,springboot项目。
演示视频: 基于Springboot的房屋租赁管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…...
跨平台移动应用开发指南:打造跨越iOS和Android的移动应用
跨平台移动应用开发已经成为许多开发者的首选,因为它可以节省时间、成本和精力,同时使得应用能够覆盖更广泛的用户群体。本指南将介绍跨平台移动应用开发的基本概念、流行的跨平台框架以及一些最佳实践,帮助您快速入门并打造出高质量的跨平台…...

QT+多线程编程
QT的多线程编程有两种 1、自定义类继承QThread 第一种是自定义一个类继承于QThread,重写run()方法来实现。然后当需要使用线程的时候你就新建一个自定义对象,然后调用start方法开始运行。 下面的例子是widget里面创建一个线程,然后调用sta…...
设计模式——迭代器模式(Iterator)
迭代器模式(Iterator Pattern)是一种行为设计模式,它使得我们能够顺序地访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式为遍历不同的聚合结构提供了一个统一的接口,使得客户端代码可以独立…...

在k8s中安装Grafana并对接Prometheus,实现k8s集群监控数据的展示
🐇明明跟你说过:个人主页 🏅个人专栏:《Grafana:让数据说话的魔术师》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、Grafana简介 2、Grafana的重要性与影响力 …...

【JavaScript】内置对象 - 数组对象 ③ ( 数组反转 - reverse 方法 | 数组排序 - sort 方法 | 自定义数组排序规则 )
文章目录 一、数组排序1、翻转数组元素 - reverse()2、数组元素排序 - sort() 默认从小到大排序3、数组元素排序 - sort() 自定义排序规则4、数组元素排序 - sort() 自定义降序排序简化写法 Array 数组对象参考文档 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript…...

ctfshow web入门 php反序列化 web267--web270
web267 查看源代码发现这三个页面 然后发现登录页面直接admin/admin登录成功 然后看到了 ///backdoor/shell unserialize(base64_decode($_GET[code]))EXP <?php namespace yii\rest{class IndexAction{public $checkAccess;public $id;public function __construct(){…...

智慧公厕解决什么问题?实现了什么样的价值?
公共厕所一直是城市管理的难题,常常面临着卫生条件不佳、管理不善以及使用体验差等问题。为了解决这些困扰城市的难题,智慧公厕应运而生。智慧公厕不仅应用了信息化和数字化技术,还通过全方位的智能化应用,彻底改变了传统公厕的面…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...