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找到value
	m[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;
}

在这里插入图片描述

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

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

相关文章

LeetCode994.腐烂的橘子

看完题我觉得这不是和上一道岛屿的题一样简单嘛&#xff0c;然后写了将近2个小时才写出来&#xff0c;我的思路就是&#xff0c;用check()先对grid检查一下&#xff0c;是否有以下情况&#xff1a; &#xff08;如果有1的周围都是空&#xff0c;则这个位置用不腐烂&#xff0c;…

[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…

2.2 调用星火大模型的API

调用星火大模型的API 1 申请API调用权限&#xff1a;2 调用原生星火 API3 统一API调用方式 项目仓库地址&#xff1a;https://github.com/datawhalechina/llm-universe 讯飞星火认知大模型&#xff0c;由科大讯飞于2023年5月推出的中文大模型&#xff0c;也是国内大模型的代表…

【原创】java+swing+mysql鲜花购物商城设计与实现

前言&#xff1a; 本文主要介绍了鲜花购物商城的设计与实现。首先&#xff0c;通过市场需求&#xff0c;我们确定了鲜花商场的功能&#xff0c;通常的商城一般都是B/S架构&#xff0c;然而我们今天要用javaswing去开发一个C/S架构的鲜花商城&#xff0c;利用开发技术和工具&am…

vue使用navigator.mediaDevices.getUserMedia调用相机功能

目录 前言&#xff1a; API&#xff1a; API简单示例&#xff1a; 拍照功能 实现效果&#xff1a; 前言&#xff1a; 本文将介绍Vue中如何使用navigator.mediaDevices.getUserMedia调用相机功能&#xff0c;实现拍照使用实例&#xff0c;需要的朋友可以参考一下。 注意…

十三、Docker的安装

0.安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版&#xff08;免费&#xff0c;支持周期 7 个月&#xff09;&#xff0c;EE 即企业版&#xff0c;强调安全&#xff0c;付费使用&#xff0c;支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道…

大师学SwiftUI第18章Part1 - 图片选择器和相机

如今&#xff0c;个人设备主要用于处理图片、视频和声音&#xff0c;苹果的设备也不例外。SwiftUI可以通过​​Image​​视图显示图片&#xff0c;但需要其它框架的支持来处理图片、在屏幕上展示视频或是播放声音。本章中我们将展示Apple所提供的这类工具。 图片选择器 Swift…

[Vue3] pinia状态管理

文章目录 1.pinia的介绍2.pinia的配置3.state状态管理3.1 state的基本使用3.2 state的访问 4.getters 1.pinia的介绍 Pinia 是 Vue 的专属状态管理库&#xff0c;它允许你跨组件或页面共享状态。如果你熟悉组合式 API 的话&#xff0c;你可能会认为可以通过一行简单的 export …

电子商务、搜索引擎

电子商务 域名 网络服务 网络樱肖 搜索引擎优化

接口自动化测试中解决接口间数据依赖

在实际的测试工作中&#xff0c;在做接口自动化测试时往往会遇到接口间数据依赖问题&#xff0c;即API_03的请求参数来源于API_02的响应数据&#xff0c;API_02的请求参数又来源于API_01的响应数据。 因此通过自动化方式测试API_03接口时&#xff0c;需要预先请求API_02接口&a…

【LeetCode刷题日志】225.用队列实现栈

&#x1f388;个人主页&#xff1a;库库的里昂 &#x1f390;C/C领域新星创作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;LeetCode 刷题日志&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;…

MFC 对话框

目录 一、对话款基本认识 二、对话框项目创建 三、控件操作 四、对话框创建和显示 模态对话框 非模态对话框 五、动态创建按钮 六、访问控件 控件添加控制变量 访问对话框 操作对话框 SendMessage() 七、对话框伸缩功能实现 八、对话框小项目-逃跑按钮 九、小项…

文章分类列表进行查询(实体类日期格式设置)

categoryController GetMappingpublic Result<List<Category>> list(){List<Category> cs categoryService.list();return Result.success(cs);} categoryService //列表查询List<Category> list(); categoryServiceImpl Overridepublic List<Cat…

科研学习|科研软件——面板数据、截面数据、时间序列数据的区别是什么?

一、数据采集方式不同 面板数据是通过在多个时间点上对同一组体进行观测而获得的数据。面板数据可以是横向面板数据&#xff0c;即对同一时间点上不同个体的观测&#xff0c;也可以是纵向面板数据&#xff0c;即对同一个体在不同时间点上的观测。采集面板数据需要跟踪相同的个体…

Idea安装完成配置

目录&#xff1a; 环境配置Java配置Maven配置Git配置 基础设置编码级设置File Header自动生成序列化编号配置 插件安装MyBtisPlusRestfulTooklkit-fix 环境配置 Java配置 Idea右上方&#xff0c;找到Project Settings. 有些版本直接有&#xff0c;有些是在设置下的二级菜单下…

哈希

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;那个传说中的man的主页 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;题目大解析&#xff08;3&#xff09; 目录 &#x1f449;&#x1f3fb;unordered系列关联式容器un…

Java学习 10.Java-类和对象

一、面向对象的初步认知 1.1 什么是面向对象 面向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交互完成一件事情&#xff0c;用面向对象的思想来设计程序&#xff0c;更符合人们对事物的认知&#xff0c;对于大型程序的设计、拓展以及维护都非常友好 1.2 面向对…

Redisson 分布式锁实战应用解析

文章目录 前言一、Redisson介绍二、Redisson的使用1.1 引入依赖1.2 编写配置1.3 示例测试_011.4 示例测试_02 三、Redisson源码分析2.1 加锁源码2.2 看门狗机制 前言 分布式锁主要是解决分布式系统下数据一致性的问题。在单机的环境下&#xff0c;应用是在同一进程下的&#x…

2023年【陕西省安全员B证】考试报名及陕西省安全员B证模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年陕西省安全员B证考试报名为正在备考陕西省安全员B证操作证的学员准备的理论考试专题&#xff0c;每个月更新的陕西省安全员B证模拟试题祝您顺利通过陕西省安全员B证考试。 1、【多选题】《陕西省建设工程质量和…

运行ps软件提示由于找不到vcruntime140.dll无法继续执行代码怎么修复

今天我在打开ps时候突然电脑出现找不到vcruntime140.dll无法继续执行代码&#xff0c;我很困扰不知道什么原因&#xff0c;于是我花了一天时间在网上找了5个可以解决这个问题的方案分享给大家&#xff0c;同时我自己也解决了问题。分享给大家就是为了大家以后遇到这个问题不用像…