0
点赞
收藏
分享

微信扫一扫

stl--<map>的用法


The most frequent number


第一行输入n(n<1000000);


第二行输入n个数,


找出出现次数最多的数,入不只有一个答案,输出最小的答案;


例:


输入:6


1 2 2 2 3 5


输出:


2


用的#include<map>,按键值(第一个数的值)排序,主要有:


定义:map<int,float> m;



插入元素:map[3]=5.123;



遍历:map<int,float>::iterator it;


for(it=m.begin();it!=m.end();it++)


{


cout<<(*it).first<<":"<<(*it).second<<endl;


}



反向遍历:map<int,float>::reverse_iterator rit;


for(rit=m.rbegin();rit!=m.rend();rit++)


{


cout<<(*rit).first<<endl;


cout<<(*rit).second<<endl; 


}



删除:m.erase(3);



清空:m.clear();



搜索:it=m.find(3);



还有个 自定义比较函数 ,有时间在补充吧TAT



#include<stdio.h>
#include<string.h>
#include<map>
using namespace std;

int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		int i;
		map<int,int> m;
		map<int,int>::iterator it;
		m.clear();
		for(i=1;i<=n;i++)
		{
			int a;
			scanf("%d",&a);
			it=m.find(a);
			if(it==m.end())
			{
				m[a]=1;
			}
			else
			{
				(*it).second++;
			}
		}
		int max=0,temp;
		for(it=m.begin();it!=m.end();it++)
		{
			if(max<(*it).second){
				max=(*it).second;
				temp=(*it).first;
			}
		}
		printf("%d\n",temp);
	}
}




举报

相关推荐

0 条评论