3
  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)?

4

4 回答 4

9

默认情况下,集合仅是唯一值并已排序,因此插入迭代器范围应该可以工作:

A.insert(B.begin(), B.end());
于 2012-06-15T18:14:22.727 回答
5
A.insert(B.begin(), B.end());      // done
于 2012-06-15T18:13:00.540 回答
4

您可以使用另一个重载,insert其中需要一对迭代器:

A.insert(B.begin(), B.end());

上面的代码将元素(其中存在A)从复制BA(这意味着您不需要手动处理重复项)。

看看insert这里的所有重载:

于 2012-06-15T18:13:09.717 回答
4

采用

template <class InputIterator>
void std::set::insert( InputIterator first, InputIterator last );
于 2012-06-15T18:14:05.990 回答