set_intersection使用例子
时间: 2023-10-06 20:06:16 浏览: 44
set_intersection是STL中的一个算法,用于计算两个有序集合(set)的交集。
以下是一个使用set_intersection计算两个set的交集的例子:
```c++
#include <iostream>
#include <set>
#include <algorithm>
int main()
{
std::set<int> set1{1, 2, 3, 4, 5};
std::set<int> set2{3, 4, 5, 6, 7};
std::set<int> intersection;
std::set_intersection(set1.begin(), set1.end(),
set2.begin(), set2.end(),
std::inserter(intersection, intersection.begin()));
for (auto elem : intersection)
{
std::cout << elem << " ";
}
return 0;
}
```
输出结果为:
```
3 4 5
```
在这个例子中,我们定义了两个set,set1和set2,并用set_intersection算法计算它们的交集。计算结果被存储在名为intersection的新set中,并被输出到控制台。
相关问题
set_intersection的用法
set_intersection函数用于在两个有序集合中求交集,输出结果也是一个有序集合。
用法如下:
```c++
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector<int> v1{1, 2, 3, 4, 5};
std::vector<int> v2{2, 4, 6, 8};
std::vector<int> v_intersection;
std::set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(),
std::back_inserter(v_intersection));
for (auto& x : v_intersection) {
std::cout << x << " ";
}
}
```
输出结果:
```
2 4
```
在上面的例子中,set_intersection函数将v1和v2中的元素进行比较,找出它们的交集,并将结果存储在v_intersection中。输出v_intersection中的元素,得到交集{2, 4}。
set_intersection()的实例
以下是使用set_intersection()函数的示例:
```cpp
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
int main() {
set<int> set1 = {1, 2, 3, 4, 5};
set<int> set2 = {3, 4, 5, 6, 7};
set<int> intersect;
set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(), inserter(intersect, intersect.begin()));
cout << "Intersection of set1 and set2: ";
for (int i : intersect) {
cout << i << " ";
}
cout << endl;
return 0;
}
```
输出:
```
Intersection of set1 and set2: 3 4 5
```
在这个例子中,我们创建了两个set(set1和set2),它们都包含一些整数。然后,我们创建了一个名为intersect的第三个set,它将包含set1和set2的交集。我们使用set_intersection()函数来计算交集,并将结果插入到intersect中。
在调用set_intersection()时,我们传入set1和set2的迭代器作为前两个参数,这些迭代器用于指定要比较的元素范围。然后,我们传入inserter()函数返回的迭代器,这个迭代器用于将结果插入到intersect中。最后,我们将intersect中的元素打印出来,以显示set1和set2的交集。