use*_*189 16 c++ intersection set
如果我知道一个集合是另一个集合的子集,并且我想找到差异,那么最有效的方法是什么?
恩.PSEUDO CODE
> set<int> set1 = {1 2 3 4 5 6 7 8 9 10}
> set<int> set2 = {5 6 7}
Run Code Online (Sandbox Code Playgroud)
我想减去set2来自set1:
这里的答案是
{1 2 3 4 8 9 10}
Run Code Online (Sandbox Code Playgroud)
orl*_*rlp 26
使用std::set_difference在<algorithm>:
#include <algorithm>
#include <set>
#include <iterator>
// ...
std::set<int> s1, s2;
// Fill in s1 and s2 with values
std::set<int> result;
std::set_difference(s1.begin(), s1.end(), s2.begin(), s2.end(),
std::inserter(result, result.end()));
Run Code Online (Sandbox Code Playgroud)