C++,stl,map/multimap详解

news2025/1/19 23:17:33

目录

1.map的构造和赋值 

2.map的大小和交换

3.map的插入和删除

4.map的查找和统计

5.map的排序


1.map的构造和赋值 

#include<bits/stdc++.h>
using namespace std;

void print(map<int,int> &mp)
{
	for(map<int,int>::iterator it = mp.begin(); it != mp.end(); it++)
	{
		cout << it -> first << ' ' << it -> second;
		cout << endl;
	}
	cout << endl;
}

int main()
{
	map<int,int> mp;
	mp.insert(pair<int,int>(1,90));
	mp.insert(pair<int,int>(2,950));
	mp.insert(pair<int,int>(7,920));
	mp.insert(pair<int,int>(5,10));
	mp.insert(pair<int,int>(6,80));
	//按照key的值进行排序
	print(mp);
	
	return 0;
}

 

2.map的大小和交换

#include<bits/stdc++.h>
using namespace std;

void print(map<int,int> &mp)
{
	for(map<int,int>::iterator it = mp.begin(); it != mp.end(); it++)
	{
		cout << it -> first << ' ' << it -> second;
		cout << endl;
	}
	cout << endl;
}

int main()
{
	map<int,int> mp;
	mp.insert(pair<int,int>(1,90));
	mp.insert(pair<int,int>(2,950));
	mp.insert(pair<int,int>(7,920));
	mp.insert(pair<int,int>(5,10));
	mp.insert(pair<int,int>(6,80));
	//按照key的值进行排序
	print(mp);
	
	cout << mp.empty() << endl;
	cout << mp.size() << endl;
	
	map<int,int>mp1;
	mp1.swap(mp);
	print(mp1);
	
	return 0;
}

3.map的插入和删除

#include<bits/stdc++.h>
using namespace std;

void print(map<int,int> &mp)
{
	for(map<int,int>::iterator it = mp.begin(); it != mp.end(); it++)
	{
		cout << it -> first << ' ' << it -> second;
		cout << endl;
	}
	cout << endl;
}

int main()
{
	map<int,int> mp;
	mp.insert(pair<int,int>(1,90));
	mp.insert(pair<int,int>(2,950));
	
	mp.insert(make_pair(7,920));
	
	mp.insert(pair<int,int>(5,10));
	
	mp[6] = 80;
	//按照key的值进行排序
	print(mp);
	
	mp.erase(6);
	//按照key删除
	mp.erase(mp.begin());
	//也可以传迭代器进行删除
	print(mp);
	
	mp.clear();
	print(mp);
	
	return 0;
}

4.map的查找和统计

#include<bits/stdc++.h>
using namespace std;

void print(map<int,int> &mp)
{
	for(map<int,int>::iterator it = mp.begin(); it != mp.end(); it++)
	{
		cout << it -> first << ' ' << it -> second;
		cout << endl;
	}
	cout << endl;
}

int main()
{
	map<int,int> mp;
	mp.insert(pair<int,int>(1,90));
	mp.insert(pair<int,int>(2,950));
	mp.insert(make_pair(7,920));
	mp.insert(pair<int,int>(5,10));
	mp[6] = 80;
	
	map<int,int>::iterator it = mp.find(5);
	//从前往后找map里有没有key为5的,没找到的话迭代器就在mp.end()处
	if(it != mp.end()) cout << "找到了" << endl;
	
	cout << mp.count(7) << endl;
	//输出有几个key为7的数,这里只有一个
	
	return 0;
}

5.map的排序

改成从大到小 

#include<bits/stdc++.h>
using namespace std;

class cmp
{
public:
	bool operator()(int v1,int v2)
	{
		return v1 > v2;
	}
};

int main()
{
	map<int,int,cmp> mp;
	mp.insert(pair<int,int>(1,90));
	mp.insert(pair<int,int>(2,950));
	mp.insert(make_pair(7,920));
	mp.insert(pair<int,int>(5,10));
	mp[6] = 80;
	
	for(map<int,int,cmp>::iterator it = mp.begin(); it != mp.end(); it++)
	{
		cout << it -> first << ' ' << it -> second << endl;
	}
	
	return 0;
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

泛型(Java)

一、定义 定义类、接口、方法时&#xff0c;同时声明了一个或者多个类型变量&#xff0c;成为泛型类、泛型接口、泛型方法&#xff0c;统称为泛型。 如下需要的结果类型是String&#xff0c;实际的是obj&#xff0c;那么我们来看看强制类型转换以后会发生什么&#xff1a; 报…

深入了解JavaScript混淆工具:jsjiami.v6

JavaScript混淆工具在前端开发中发挥着重要的作用&#xff0c;帮助开发者保护源代码&#xff0c;减少代码被轻易破解的风险。其中&#xff0c;jsjiami.v6 是一款备受开发者关注的混淆工具之一。本文将深入介绍jsjiami.v6的基本原理和使用方法&#xff0c;并通过案例代码演示其效…

《A++ 敏捷开发》- 8 获取高层支持

我&#xff1a;对过程改进来说&#xff0c;最重要的成功要素是什么&#xff1f; 客户&#xff1a;最难的是如何得到高层的支持&#xff0c;这不仅仅是嘴巴说说而已&#xff0c;而是要切实地给人、给时间。高层往往不清楚什么是质量改进的重点&#xff0c;但他们对员工的人均收入…

【Web】CVE-2021-31805 s2-062漏洞复现学习

目录 Struts2介绍 漏洞概况 OGNL与Struts2 简单原理 漏洞复现 正向rce 反弹shell payload分析 Struts2介绍 Struts 2 是一个流行的用于构建 Java Web 应用程序的开源 Web 应用程序框架。它是 Apache 软件基金会下的一个顶级项目&#xff0c;是 Struts 框架的升级版本。…

29.方法引用

方法引用 1. 概述2.引用静态方法2.1 概述2.2 代码示例 3. 引用成员方法3.1 概述3.2 分类3.2.1 其他类3.2.2 本类3.2.3 父类 3.3 代码示例 4. 引用构造方法4.1 概述4.2 代码示例 5. 使用类名引用成员方法5.1 概述5.2 代码示例 6. 引用数组的构造方法6.1 概述6.2 代码示例 7. 注意…

【Vue】computed与watch

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Vue⛺️稳重求进&#xff0c;晒太阳 计算属性 概念&#xff1a;基于现有的数据&#xff0c;计算出来新的属性&#xff0c;依赖的数据变化&#xff0c;自动重新计算 语法&#xff1a; 声明…

蓝牙BLE学习-安全

1.基本概念 蓝牙标准规定了5种基本的安全服务 身份验证:根据通信设备的蓝牙地址验证其身份。蓝牙不提供本地用户身份验证。保密性:确保只有授权的设备才能访问和查看传输的数据&#xff0c;防止窃听造成的信息泄露。授权(Authorization):在允许设备使用某项服务之前&#xff…

Vue-自定义属性和插槽(五)

目录 自定义指令 基本语法 (全局&局部注册) 指令的值 练习&#xff1a;v-loading 指令封装 总结&#xff1a; 插槽&#xff08;slot&#xff09; 默认插槽 插槽 - 后备内容&#xff08;默认值&#xff09; 具名插槽 具名插槽基本语法: 具名插槽简化语法: 作…

可视化工具:将多种数据格式转化为交互式图形展示的利器

引言 在数据驱动的时代&#xff0c;数据的分析和理解对于决策过程至关重要。然而&#xff0c;不同的数据格式和结构使得数据的解读变得复杂和困难。为了解决这个问题&#xff0c;一种强大的可视化工具应运而生。这个工具具有将多种数据格式&#xff08;包括JSON、YAML、XML、C…

调用讯飞火星AI大模型WebAPI

调用讯飞火星AI大模型 记录一次调用讯飞AI大模型的过程 官方文档 首先&#xff0c;去官网申请资格&#xff0c;获得必要秘钥等 再编写url&#xff0c;该url存在编码要求&#xff0c;具体看官网url编写 具体代码如下&#xff1a; getWebsocketUrl() {return new Promise((resol…

格式化字符串的简单学习

文章目录 Format String格式化字符串函数格式化字符串参数原理 这几天学的少&#xff0c;过完年就一直在走亲戚&#xff08;现在看到肉就犯恶心 Format String 格式化字符串函数可以接受可变数量的参数&#xff0c;并将第一个参数作为格式化字符串&#xff0c;根据其来解析之…

ChatGPT高效提问—prompt实践(视频制作)

ChatGPT高效提问—prompt实践&#xff08;视频制作&#xff09; 1.1 视频制作 ​ 制作视频对于什么都不懂的小白来说非常难。而随着AI技术的发展&#xff0c;这件事变得越来越简单&#xff0c;如今小白也可以轻松上手。如何借助ChatGPT来制作短视频。 ​ 其实方法非常简单&a…

【排序】归并排序

归并排序 动图演示&#xff1a; 基本思想&#xff1a;分治思想 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子…

CSS 评分器星星效果

<template><view class="rating"><!-- 5颗星 --><input value="5" name="rating" id="star5" type="radio"><label for="star5"></label><!-- 4颗星 --><input val…

中小学信息学奥赛CSP-J认证 CCF非专业级别软件能力认证-入门组初赛模拟题第一套(完善程序题)

CCF认证CSP-J入门组模拟测试题第一套 三、完善程序题 第一题 九宫格 请完善下面的程序,将1~9个数字分别填人3x3的九宫格中,第一行的三个数字组成一个三位数。要使第二行的三位数是第一行的2倍,第三行的三位数是第一行的3倍且每个格子里的数字都不能重复,现在要求输出所有的填…

08:K8S资源对象管理|服务与负载均衡|Ingress

K8S资源对象管理&#xff5c;服务与负载均衡&#xff5c;Ingress DaemonSet控制器污点策略容忍容忍污点 其他资源对象Job资源对象 有限生命周期CronJob资源对象 集群服务服务自动发现headless服务 实现服务定位与查找 服务类型 Ingress插件 发布服务的方式 DaemonSet控制器 Da…

GEE:梯度提升树(Gradient Boosting Tree)回归教程(样本点、特征添加、训练、精度、参数优化)

作者:CSDN @ _养乐多_ 对于分类问题,这个输出通常是一个类别标签 ,而对于回归问题,输出通常是一个连续的数值。回归可以应用于多种场景,包括预测土壤PH值、土壤有机碳、土壤水分、碳密度、生物量、气温、海冰厚度、不透水面积百分比、植被覆盖度等。 本文将介绍在Google…

vue-进阶语法(四)

目录 v-model原理 v-model应用于组件 sync修饰符 ref 和 $refs&#xff08;重点&#xff09; $nextTick v-model原理 原理&#xff1a;v-model本质上是一个语法糖。例如应用在输入框上&#xff0c;就是 value属性 和 input事件 的合写。 作用&#xff1a;提供数据的双向…

【开源】JAVA+Vue.js实现天然气工程运维系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统角色分类2.2 核心功能2.2.1 流程 12.2.2 流程 22.3 各角色功能2.3.1 系统管理员功能2.3.2 用户服务部功能2.3.3 分公司&#xff08;施工单位&#xff09;功能2.3.3.1 技术员角色功能2.3.3.2 材料员角色功能 2.3.4 安…

ClickHouse--03--数据类型

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 数据类型1. Int2.FloattoFloat32(...) 用来将字符串转换成 Float32 类型的函数toFloat64(...) 用来将字符串转换成 Float64 类型的函数 3.DecimaltoDecimal32(value…