面试题答案
一键面试#include <iostream>
#include <set>
#include <algorithm>
std::set<int> intersection(const std::set<int>& set1, const std::set<int>& set2) {
std::set<int> result;
std::set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(),
std::inserter(result, result.begin()));
return result;
}
你可以通过以下方式调用这个函数:
int main() {
std::set<int> set1 = {1, 2, 3, 4, 5};
std::set<int> set2 = {3, 4, 5, 6, 7};
std::set<int> intersectionSet = intersection(set1, set2);
for (int num : intersectionSet) {
std::cout << num << " ";
}
return 0;
}
上述代码定义了一个intersection
函数,该函数使用<algorithm>
头文件中的std::set_intersection
算法来计算两个std::set
的交集,并将结果存储在一个新的std::set
中返回。在main
函数中,展示了该函数的调用方法。
intersection
函数:- 接收两个
std::set
作为参数。 - 创建一个空的
std::set
result
用于存储交集结果。 - 使用
std::set_intersection
算法,该算法需要两个输入范围(set1
和set2
的范围)以及一个输出迭代器(这里使用std::inserter
创建的插入迭代器,它会自动将元素插入到result
中)。
- 接收两个
main
函数:- 创建两个示例
std::set
set1
和set2
。 - 调用
intersection
函数计算交集并存储在intersectionSet
中。 - 遍历
intersectionSet
并输出其中的元素。
- 创建两个示例