c++求两个数组交集
时间: 2024-12-24 17:41:01 浏览: 11
在C++中,你可以通过多种算法来找出两个数组的交集。这里介绍一种常见的方法,即使用哈希集合(如STL中的unordered_set)来简化操作。以下是基本步骤:
1. 首先,创建一个哈希集合(unordered_set),用于存储第一个数组的所有元素。
2. 然后,遍历第二个数组,对于每个元素,检查它是否已经在哈希集合中。如果在,就说明它是两个数组的交集。
3. 最后,将找到的交集元素保存到一个新的数组或容器中。
```cpp
#include <iostream>
#include <unordered_set>
using namespace std;
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
unordered_set<int> set1(nums1.begin(), nums1.end());
vector<int> result;
for (int num : nums2) {
if (set1.find(num) != set1.end()) {
result.push_back(num);
}
}
return result;
}
// 示例
int main() {
vector<int> arr1 = {1, 2, 2, 1}; // 第一个数组
vector<int> arr2 = {2, 2, 3, 4}; // 第二个数组
vector<int> intersection = intersect(arr1, arr2);
for (int i : intersection) {
cout << i << " ";
}
return 0;
}
```
阅读全文