Pie*_*BdR 127
是的,它在,<algorithm>并且被称为:std::set_difference.用法是:
#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)
最后,该集result将包含s1-s2.
Mr *_*ooz 11
是的,算法标题中有一个set_difference函数.
编辑:
仅供参考,设置数据结构能够有效地使用该算法,如其文档中所述.该算法不仅可以在集合上工作,还可以在排序集合上的任何迭代器对上工作.
正如其他人所提到的,这是一种外部算法,而不是一种方法.据推测,这对您的应用程序来说很好.
再次,加强救援:
#include <string>
#include <set>
#include <boost/range/algorithm/set_algorithm.hpp>
std::set<std::string> set0, set1, setDifference;
boost::set_difference(set0, set1, std::inserter(setDifference, setDifference.begin());
Run Code Online (Sandbox Code Playgroud)
setDifference 将包含 set0-set1。