定义两个set,分别存储两个班级的学生名单,然后使用集合运算(交集、差集)找出两个班级的独有学生和共同学生。c++
时间: 2024-06-17 07:02:30 浏览: 8
首先,我们可以使用C++的STL中的set容器来定义存储班级学生名单的集合。下面是示例代码:
```c++
#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
int main() {
set<string> class1 = {"张三", "李四", "王五", "赵六"};
set<string> class2 = {"李四", "王五", "钱七", "孙八"};
// 求交集
set<string> intersection;
set_intersection(class1.begin(), class1.end(), class2.begin(), class2.end(), inserter(intersection, intersection.begin()));
cout << "共同学生:" << endl;
for (auto& name : intersection) {
cout << name << endl;
}
// 求差集
set<string> difference1;
set_difference(class1.begin(), class1.end(), class2.begin(), class2.end(), inserter(difference1, difference1.begin()));
cout << "班级一独有的学生:" << endl;
for (auto& name : difference1) {
cout << name << endl;
}
set<string> difference2;
set_difference(class2.begin(), class2.end(), class1.begin(), class1.end(), inserter(difference2, difference2.begin()));
cout << "班级二独有的学生:" << endl;
for (auto& name : difference2) {
cout << name << endl;
}
return 0;
}
```
输出结果如下:
```
共同学生:
李四
王五
班级一独有的学生:
张三
赵六
班级二独有的学生:
钱七
孙八
```