有两个数的集合(每个集合里面没有重复的数),求他们交集的元素个数。 输入格式 第一行: m和 n ,用空格隔开,分别表示两个集合数的个数。 第二行: m 个数,表示的是第一个数的集合,用空格隔开。 第三行: n 个数,表示的是第二个数的集合,用空格隔开。 输出格式 一行一个整数表示第一个集合里有多少个数也在第二个集合里。
时间: 2024-04-16 15:28:27 浏览: 101
你可以使用以下 C++ 代码来求两个集合的交集元素个数:
```cpp
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
int m, n;
cin >> m >> n;
unordered_set<int> set1, set2;
// 读取第一个集合的元素
int num;
for (int i = 0; i < m; i++) {
cin >> num;
set1.insert(num);
}
// 读取第二个集合的元素,并计算交集个数
int intersectionCount = 0;
for (int i = 0; i < n; i++) {
cin >> num;
if (set1.count(num)) {
intersectionCount++;
}
}
cout << intersectionCount << endl;
return 0;
}
```
代码中使用了 `unordered_set` 来存储集合中的元素,它具有快速查找的特性。我们首先读取第一个集合的元素并将其插入到 `set1` 中,然后读取第二个集合的元素,如果该元素也在 `set1` 中,则交集个数加一。
希望这个代码对你有帮助!如有任何问题,请随时提问。
阅读全文