- 此问题在此处已有答案**:
Merge multiple sets elements in a single set(4个答案)
append set to another set(2个答案)
八年前就关门了。
标准库中没有这样的函数吗?
set<T> set::union(set<T> other)
或者这个?
set<T> getUnion(set<T> a, set<T> b)
set_union
只是名称上正确的函数,它也可以在vector
上操作,这意味着它可能没有set
-only函数那么高效。
我**没有追加。* 追加会破坏原始集合 。我需要一个表示并集的 * 新 * 集合。*
2条答案
按热度按时间7tofc5zh1#
你可以使用两个迭代器
std::set::insert
模板:注意:由于我需要一个副本,所以一些评论建议我按值获取其中一个参数,我选择此实现以避免禁用RVO,这在返回按值获取的参数时是不允许的。为了更好地处理右值参数,可以提供此函数的重载,该函数采用右值引用并利用移动语义。
t98cgbkg2#
有
std::set_union
。该页的示例使用了向量和数组,因此用途非常广泛:
输出: