set做两个数组的交集c++代码
时间: 2024-12-29 21:33:37 浏览: 8
在C++中,你可以使用`std::set`数据结构以及算法库来找到两个数组的交集。下面是一个简单的示例,假设我们有两个整数数组:
```cpp
#include <iostream>
#include <vector>
#include <set>
// 函数声明
std::vector<int> findIntersection(const std::vector<int>& arr1, const std::vector<int>& arr2);
int main() {
std::vector<int> array1 = {1, 2, 3, 4, 5};
std::vector<int> array2 = {4, 5, 6, 7, 8};
// 找到并打印交集
std::vector<int> intersection = findIntersection(array1, array2);
for (const auto& num : intersection) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
// 定义findIntersection函数
std::vector<int> findIntersection(const std::vector<int>& arr1, const std::vector<int>& arr2) {
std::set<int> s1(arr1.begin(), arr1.end());
std::vector<int> result;
for (auto it = arr2.begin(); it != arr2.end(); ++it) {
if (s1.find(*it) != s1.end()) {
result.push_back(*it); // 如果元素在集合s1中,则添加到结果集中
}
}
return result;
}
```
在这个例子中,我们首先将`arr1`转换为`std::set`,因为`set`自动去除了重复项,然后遍历`arr2`,如果`arr2`中的元素也在`set`中,则说明它是两个数组的交集部分。
阅读全文