解析 2017-C-C题2兴趣小组_哔哩哔哩_bilibili
思想
按照歪歪的提示,我们这道题用集合来解, 一个set就是一个集合 用3个set,首先判断第二个set如果可以找到第一个set里的内容,并且第三个set找不到第一个set里面的内容,就用计数器统计一下。
#include<bits/stdc++.h>
#include<fstream>
using namespace std;
set<string>A,B,C;
void read(set<string>& a,char* path)
{
ifstream fin;
fin.open(path,ios_base::in);
while(!fin.eof()) //end of file
{
string s;
fin>>s; //从字符串里读取内容
if(s.length()>0) //防止读入空字符串
{
a.insert(s);
}
}
fin.close();
}
int main()
{
int ans=0;
read(A,"D:\\devc++工程\\A.txt");
read(B,"D:\\devc++工程\\B.txt");
read(C,"D:\\devc++工程\\C.txt");
//验证是否读取成功
//cout<<A.size()<<endl;
//cout<<B.size()<<endl;
//cout<<C.size()<<endl;
set<string>::iterator itA=A.begin();
while(itA!=A.end())
{
if(B.find(*itA)!=B.end()&&C.find(*itA)==C.end())
{
ans++;
}
itA++;
}
cout<<ans<<endl;
return 0;
}
运行结果
通过