wumou


私信TA

用户名:2021102133

访问量:534

签 名:

阿猫阿狗也行--v--_--v--

等  级
排  名 18306
经  验 749
参赛次数 0
文章发表 4
年  龄 0
在职情况 学生
学  校 NIT
专  业

  自我简介:

TA的其他文章

解题思路:一个集合的交集问题,就是满足在集合A和集合B但是不满足集合C的就是我们要输出的,为了熟悉熟悉一下vector和迭代器,我使用了vector库,不过应该其他方法也行

注意事项:find这函数是algorithm库的,注意把#include<algorithm>加进去。(我觉得输入数据可以用一个函数解决,这样就不用写那么多循环,不过vector做函参我有点搞不明白,就没去搞)

参考代码:

#include<iostream>

#include<vector>

#include<algorithm>

using namespace std;



 int main()

 {

  vector<string>A;

vector<string>B;

vector<string>C; 

vector<string>::iterator it,i1,i2;//迭代器 

  int a,b,c,t,p;

  string k;

      int flag=1;

while(cin>>a>>b>>c){

flag=1;

for(int i=0;i<a;i++)//进入边境列表 

{

cin>>k;

A.push_back(k);

k.clear();

}

for(int i=0;i<b;i++)//Y国派出列表 

{

cin>>k;

B.push_back(k);

k.clear();

}

for(int i=0;i<c;i++)//x国派出列表 

{

cin>>k;

C.push_back(k);

k.clear();

}

for(it=B.begin();it!=B.end();it++){

i1=find(A.begin(),A.end(),*it);

i2=find(C.begin(),C.end(),*it);

if(i1!=A.end()&&i2==C.end()){

flag=0;

cout<<*it<<" ";

}

}

 

if(flag)

cout<<"No enemy spy";

cout<<endl;

A.clear();

B.clear();

C.clear();

 

 

 

  return 0;

 } 


 

0.0分

0 人评分

  评论区

  • «
  • »