set<int> A, B;
for (int i = 0; i < 100; i++) A.insert(i);
for (int i = 50; i < 150; i++) B.insert(i);
如何将集合的元素添加B
到集合中A
?
换句话说,如何实现A
= Union( A
, B
)?
set<int> A, B;
for (int i = 0; i < 100; i++) A.insert(i);
for (int i = 50; i < 150; i++) B.insert(i);
如何将集合的元素添加B
到集合中A
?
换句话说,如何实现A
= Union( A
, B
)?
默认情况下,集合仅是唯一值并已排序,因此插入迭代器范围应该可以工作:
A.insert(B.begin(), B.end());
A.insert(B.begin(), B.end()); // done
您可以使用另一个重载,insert
其中需要一对迭代器:
A.insert(B.begin(), B.end());
上面的代码将元素(其中不存在A
)从复制B
到A
(这意味着您不需要手动处理重复项)。
看看insert
这里的所有重载:
采用
template <class InputIterator>
void std::set::insert( InputIterator first, InputIterator last );