0
点赞
收藏
分享

微信扫一扫

c++map初级使用

岛上码农 2022-04-16 阅读 66

map是c++stl里面写好的结构,map内部自成一颗红黑树,也就是严格按照第一关键字排序;

事实上,这里的第一关键字对应的是第二关键字,两者不能说相似,只能说毫不相关;

这里的第一关键字相当于一个钥匙(key),由第一关键字我们能严格找到第二关键字,如果第二关键字是int的话,我们可以对其进行运算,如果是string的话,我们也可以对其进行基本的string运算;

map有着和数组类似的写法,但是map内部的关键字不重复;

让我们来看一道简单的题目学习一下map:PTA | 程序设计类实验辅助教学平台

这是一道来自2021年天梯赛的真题,这道题要求我们把所有的数据处理一下,然后找到出现最大的和最小的两组数据;

这里有两种方法,其一,我们可以开一个数组直接存储第一个数据,然后排序后卑鄙(名词)去重,接着直接找到第一组数据最后一个,最后一组数据最后一个,输出即可

卑鄙去重图示

 只需要遍历数组即可做到;

第二种方法就是map,关键词都为int类型,直接找到key然后加加即可,如果没有map会给你搞一个;

代码:

#include<iostream>
#include<cstring>
#include<algorithm>
#include<map>
using namespace std;

map<int,int>mp;//关键词为int int的map 

int main()
{
	int n;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		int m;
		cin>>m;
		mp[m]++;//直接加加,也就是后面的int来计数,前面的int是关键词 
	}
	int mi=0x3f3f3f3f,ma=0,a,b;
	for(auto x: mp)//auto是自动识别类型函数,要是不想写这个也可以写 map<int,int>
//或者是map的迭代器 
	{
		if(x.first<mi)
		{
			mi=x.first;
			a=x.second;
		}
		if(x.first>ma)
		{
			ma=x.first;
			b=x.second;
		}
	}
	
	cout<<mi<<' '<<a<<endl;
	cout<<ma<<' '<<b;//直接输出即可 
}
 

至此,完结撒花;

举报

相关推荐

C++map函数的用法

c初级

C语言初级

【C++】map和set使用

C++ 映射Map的使用

C++初级编程

0 条评论