C++之map容器

news2025/1/18 8:33:52

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;
}

在这里插入图片描述

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

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

相关文章

macbook ntfs能读不能复制 c盘ntfs拒绝访问怎么解决

如果你是一位Mac用户&#xff0c;你可能会遇到这样的问题&#xff1a;你的Mac能够读取NTFS格式的移动硬盘或U盘&#xff0c;但是不能往里面复制或者修改文件。或者&#xff0c;你的Windows电脑出现了C盘NTFS拒绝访问的错误&#xff0c;导致你无法正常使用系统。这些问题都是由于…

Spring 设计模式-简洁版

Java 中包括以下设计模式&#xff1a; 其中Spring 用到的设计模式 1.简单工厂-BeanFactory 2.工厂方法FactoryBean 3.单例模式Bean实例 4.适配器模式SpringMVC中的HandlerAdatper 5.装饰器模式BeanWrapper 6.代理模式_AOP底层 7.观察者模式-spring的事件监听 8.策略横式exclud…

Unity在Windows选项下没有Auto Streaming

Unity在Windows选项下没有Auto Streaming Unity Auto Streaming插件按网上说的不太好使最终解决方案 Unity Auto Streaming插件 我用的版本是个人版免费版&#xff0c;版本号是&#xff1a;2021.2.5f1c1&#xff0c;我的里边Windows下看不到Auto Streaming选项,就像下边这张图…

Clickhouse初认识

技术主题-clickhouse 一什么是clickHouse 1&#xff09;本质上就是一款数据库管理系统&#xff0c;能提供海量数据的存储和检索 2&#xff09;基于列存储&#xff0c;数据是按照列进行存储的&#xff08;数据格式一样&#xff0c;方便进行压缩&#xff09; 3&#xff09;具备…

数据结构-插入排序+希尔排序+选择排序

目录 1.插入排序 插入排序的时间复杂度&#xff1a; 2.希尔排序 希尔排序的时间复杂度&#xff1a; 3.选择排序 选择排序的时间复杂度&#xff1a; 所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的…

Gem5模拟器学习之旅——翻译自官网

文章目录 安装并使用gem5 模拟器支持的操作系统和环境依赖在 Ubuntu 22.04 启动(gem5 > v21.1)Docker获取代码用 SCons 构建用法首次构建 gem5gem5 二进制类型调试opt快速 常见错误错误的 gcc 版本Python 位于非默认位置未安装 M4 宏处理器Protobuf 3.12.3 问题 安装并使用g…

Pandas中loc和iloc函数(提取某几列或者行的数据)

loc函数&#xff1a;通过行索引&#xff08;列名、行名&#xff09; 中的具体值来取行数据&#xff08;如取"Index"为"A"的行&#xff09; iloc函数&#xff1a;通过行号&#xff08;数字&#xff09;来取行数据&#xff08;如取第二行的数据&#xff09;…

JAVA刷题之字符串的一些个人思路

感谢您的阅读&#xff01; ꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯…

【Spring总结】基于配置的方式来写Spring

本篇文章是对这两天所学的内容做一个总结&#xff0c;涵盖我这两天写的所有笔记&#xff1a; 【Spring】 Spring中的IoC&#xff08;控制反转&#xff09;【Spring】Spring中的DI&#xff08;依赖注入&#xff09;Dependence Import【Spring】bean的基础配置【Spring】bean的实…

计算机msvcr120.dll丢失的解决方法,分享多种亲测可靠的方法

在使用计算机的过程中&#xff0c;我们有时可能会遇到一些技术问题&#xff0c;其中之一就是提示丢失msvcr120.dll文件。当计算机提示丢失msvcr120.dll文件时&#xff0c;可能是由于某些程序无法找到这个文件&#xff0c;从而导致程序无法正常运行。那么我们需要如何解决修复好…

一文读懂:testcafe框架和页面元素交互

一、互动要求 使用 TestCafe 与元素进行交互操作&#xff0c;元素需满足以下条件&#xff1a;☟ 元素在 body 页面窗口或 iframe 窗口的元素内。如果某个元素在视口之外&#xff0c;则 TestCafe 通过滚动可以滚动到元素可见。 元素是可见的&#xff0c;具有以下属性&#…

Leetcode—剑指OfferII LCR 022.环形链表II【中等】

2023每日刷题&#xff08;三十三&#xff09; Leetcode—LCR 022.环形链表II 算法思想 参考k神的博客 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode *detectCycle(struct List…

2.3 调用智谱 API

调用智谱 API 1 申请调用权限2 调用智谱 AI API3 使用 LangChain 调用智谱 AI参考&#xff1a; 智谱 AI 是由清华大学计算机系技术成果转化而来的公司&#xff0c;致力于打造新一代认知智能通用模型。公司合作研发了双语千亿级超大规模预训练模型 GLM-130B&#xff0c;并构建了…

Python------列表 集合 字典 推导式(本文以 集合为主)

推导式&#xff1a; 推导式comprehensions&#xff08;又称解析式&#xff09;&#xff0c;是Python的一种独有特性。推导式是可以从一个数据序列 构建 另一个 新的数据序列&#xff08;一个有规律的列表或控制一个有规律列表&#xff09;的结构体。 共有三种推导&#xff…

HUAWEI华为笔记本MateBook X 2021款i5集显(EULD-WFH9,WXX9)原装出厂Windows11系统工厂模式包

下载链接&#xff1a;https://pan.baidu.com/s/1gQ_O203SSm83Nc-zDk1iNA?pwd4exz 提取码&#xff1a;4exz 系统带F10一键智能还原功能隐藏恢复分区、所有驱动、Office办公软件、华为电脑管家等预装程序 所需要工具&#xff1a;32G或以上的U盘 文件格式&#xff1a;zip …

TensorRt推理加速框架Python API服务器部署教程以及运行Helloworld程序

一、确认cuda工具包和n卡相关驱动是否安装 在终端中输入以下命令&#xff1a; nvcc -V如果出现以下提示&#xff0c;则已经成功安装 在终端中输入以下命令&#xff1a; nvidia-smi如果出现即为成功&#xff0c;我在这里就不去介绍怎么下载cuda和驱动怎么下载了&#xff0c;…

【Linux系统化学习】进程的父子关系 | fork 进程

个人主页点击直达&#xff1a;小白不是程序媛 Linux专栏&#xff1a;Linux系统化学习 目录 前言&#xff1a; 父子进程 父子进程的引入 查看父子进程 查询进程的动态目录 更改进程的工作目录 fork创建进程 fork的引入 fork的使用 fork的原理 fork如何实现的&#…

2023-2024华为ICT大赛-计算赛道-广东省省赛初赛-高职组-部分赛题分析【2023.11.18】

2023-2024华为ICT大赛 计算赛道 广东省 省赛 初赛 高职组 部分赛题 分析【2023.11.18】 文章目录 单选题tpcds模式中存在表customer&#xff0c;不能成功删除tpcds模式是&#xff08; &#xff09;以下哪个函数将圆转换成矩形&#xff08; &#xff09;下列哪个选项表示依赖该D…

一键云端,AList 整合多网盘,轻松管理文件多元共享!

hello&#xff0c;我是小索奇&#xff0c;本篇教大家如何使用AList实现网盘挂载 可能还是有小伙伴不懂&#xff0c;所以简单介绍一下哈 AList 是一款强大的文件管理工具&#xff0c;为用户提供了将多种云存储服务和文件共享协议集成在一个平台上的便利性。它的独特之处在于&am…

cesium雷达效果(脉冲圆)

cesium雷达效果(脉冲圆) 下面富有源码 实现思路 使用ellipse方法加载圆型,修改ellipse中‘material’方法重写glsl来实现当前效果 示例代码 index.html <!DOCTYPE html> <html lang="en"><head>