s1 和 s2 是集合(Python 集合或 C++ std::set)
要将 s2 的元素添加到 s1(集合并集),您可以
Python: s1.update(s2)
C++: s1.insert(s2.begin(), s2.end());
要从 s1 中删除 s2 的元素(设置差异),您可以执行
Python: s1.difference_update(s2)
与此等效的 C++ 是什么?编码
s1.erase(s2.begin(), s2.end());
不起作用,因为 s1.erase() 需要来自 s1 的迭代器。代码
std::set<T> s3;
std::set_difference(s1.begin(), s1.end(), s2.begin(), s2.end(), std::inserter(s3, s3.end());
s1.swap(s3);
有效,但似乎过于复杂,至少与 Python 相比。
有没有更简单的方法?