set_intersection的用法
时间: 2023-11-11 14:04:32 浏览: 154
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}。
相关问题
std::set_intersection的用法
`std::set_intersection`是C++标准库中的一个算法,常用于处理两个已排序的集合(通常是`std::set`类型),找到它们之间的交集部分。其基本语法如下:
```cpp
#include <algorithm>
#include <iostream>
#include <set>
// 假设我们有以下两个集合
std::set<int> s1 = {1, 3, 5, 7, 9};
std::set<int> s2 = {3, 6, 8, 10};
// 创建一个空集合来存储交集
std::set<int> intersection;
// 使用set_intersection
std::set_intersection(all(s1), all(s2), begin(intersection), end(intersection));
// 打印交集
for (const auto& elem : intersection) {
std::cout << elem << " ";
}
```
在这个例子中:
- `all(s1)`和`all(s2)`分别代表集合`s1`和`s2`的全部元素范围(即从第一个元素到最后一个元素)。
- `begin(intersection)`和`end(intersection)`提供交集集合`intersection`的开始和结束迭代器,`inserter`将其转换为可以接受值的对象,以便在内部更新集合。
运行上述代码,会打印出交集`{3}`,因为这是`s1`和`s2`都存在的唯一元素。
set_intersection()的用法
set_intersection()是C++ STL中的一个算法函数,用于求两个集合的交集。它需要两个已排序的集合作为输入,并将结果存储在第三个集合中。如果两个集合中有相同的元素,则交集中只会包含一个。
阅读全文