C++ 差集
flyfish
向量left与向量right已经排序
向量left的值包括{1,2,3,4,5,6}
向量right的值包括{1,2,3}
输出结果向量result的值是{4,5,6}
方式1
void DifferenceSet(
const std::vector<int> &left,
const std::vector<int>&right,
std::vector<int>& result)
{
for (std::vector<int>::const_iterator it = left.begin(); it !=
left.end(); it++)
{
if (!(std::find(right.begin(), right.end(), *it) != right.end()))
result.push_back(*it);
}
}
方式2
void DifferenceSet(
const std::vector<int> &left,
const std::vector<int>&right,
std::vector<int>& result)
{
std::vector<int>::iterator it;
result.resize(left.size());
it = std::set_difference(left.begin(), left.end(), right.begin(), right.end(),
result.begin());
result.resize(it - result.begin());
}