如何将std :: set的元素添加到另一个非空集?

时间:2012-06-15 18:09:43

标签: c++

  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 =联盟(AB)?

4 个答案:

答案 0 :(得分:8)

默认设置只是唯一值并且已排序,因此插入迭代器范围应该有效:

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

答案 1 :(得分:4)

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

答案 2 :(得分:4)

您可以使用insert的另一个重载,它将一对迭代器作为:

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

上面的代码会将A中的元素从B复制到A(这意味着您无需处理手动重复。)

在这里查看insert的所有重载:

答案 3 :(得分:4)

使用

template <class InputIterator>
void std::set::insert( InputIterator first, InputIterator last );