比较好理解直接上代码
#include<iostream>
#include<vector>
using namespace std;
struct candite
{
char name[10];
int votecount;
};
int main()
{
int num,invalid=0;
vector<candite> in;
char sname[10] = { 0 };
candite p;
bool flag = false;
cin >> num;
for (int i = 0; i<num; i++)
{
cin >> sname;
strcpy_s(p.name, sname);
p.votecount = 0;
in.push_back(p);
}
cin >> num;
for (int i = 0; i < num; i++)
{
cin >> sname;
for (int j = 0; j < in.size(); j++)
{
if (!strcmp(in[j].name, sname)&&!flag)
{
in[j].votecount++;
flag = true;
}
}
if (!flag)
{
invalid++;
}
flag = false;
}
for (int i = 0; i < in.size(); i++)
{
cout << in[i].name << " : " << in[i].votecount << endl;
}
cout << "Invalid" << " : " << invalid << endl;
return 0;
}
结论:之前考虑过用map做,但是map会根据Key自动排序,Set应该可以做!