map写法,输入错误
查看原帖
map写法,输入错误
977431
maoyuqi楼主2024/1/27 09:52

虽然用其他写法对了,但是还是想请大佬看一下这个map哪里错了

#include<bits/stdc++.h>
using namespace std;
map <string,int> mp;
int n;
struct st{
	string na;
	int k;
};
struct st a[1000];
void init()
{
	cin>>n;
	for(int i = 1;i<=n;i++)
	{
		char a,b;
		cin>>a>>b;
		while(a!='\n')
		{
			string name="";
			name+=a;name+=b;
			map<string,int>::iterator pos=mp.find(name);
			if(pos!=mp.end())
			{
				int zhi=(*pos).second;
				mp.erase(pos);
				zhi++;
				mp.insert(make_pair(name,zhi));
			}
			else{
				mp.insert(make_pair(name,1));
			}
			cin>>a>>b;
		}
	}
}
bool cmp(struct st x,struct st y)
{
	if(x.k!=y.k) return x.k>y.k;
	return x.na<y.na;
}
void chushi()
{
	int i = 1;
	for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++)
	{
		a[i].na=(*it).first;
		a[i].k=(*it).second;
	}
	sort(a+1,a+i+1,cmp);
	for(int i = 1;i<=16;i++)
	{
		cout<<a[i].na;
	}
}
int main()
{
	init();
	chushi();
	return 0;
} 
2024/1/27 09:52
加载中...