比较列表并给出列表b中列表a中的内容

时间:2015-02-16 02:49:13

标签: c++

我有2个清单。让我们把它们称为A和B.有没有一个简洁的stl技巧来查看列表中哪个列表有没有我自己用迭代器手动循环它们自己比较这些元素?

2 个答案:

答案 0 :(得分:3)

std::set_difference

  

两组的差异由第一组中存在的元素形成,但不存在于第二组中。函数复制的元素始终来自第一个范围,顺序相同。

请注意,必须对这两个列表进行排序。

以下示例显示了使用示例:

#include <iostream>
#include <algorithm>
#include <list>

using namespace std;

int main()
{
   list<int> a {1,2,3,4,5,10};
   list<int> b {4,5,6,7,11};
   list<int> out;
   set_difference(b.begin(), b.end(), a.begin(), a.end(), back_inserter(out));
   cout << "out size is " << out.size() << endl;
   for(auto i: out)
   {
      cout << i << endl;
   }
}

答案 1 :(得分:1)

您可以使用set_difference算法set-difference discription

这是一个c ++示例cppreference