给定 2 个集合 (C++) 是否有一种方便的方法可以在没有任何分配的情况下获取交叉点的大小(如 std::set_intersection 所做的那样)
当然,我可以复制实现减去分配,但我总是宁愿不重新发明轮子
int count = 0;
while (first1!=last1 && first2!=last2)
{
if (*first1<*first2) ++first1;
else if (*first2<*first1) ++first2;
else {
count++; ++first1; ++first2;
}
}
我正在考虑使用 std::set_intersection 并传递一个“计数”插入器......?