我正在尝试调用 set_difference 函数,并将结果放在 std::list 中。理论上,可以在任何排序的容器上执行此操作,对吧?
list<int> v;
list<int> l1;
list<int> l2;
list<int>::iterator it;
//l1 and l2 are filled here
l1.sort();
l2.sort();
it=set_difference(
l1.begin(),
l1.end(),
l2.begin(),
l2.end(),
v.begin()
);
但是,v 返回的是一个空列表。是因为我不能在列表容器上使用它吗?
最佳答案
这是因为 v.begin()
是一个空序列的开始。这些元素几乎可以复制到任何地方。将其替换为 std::back_inserter(v)
。这将为您提供一个知道如何插入 v
的迭代器。
关于c++ - 列表容器上的 std::set_difference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12252620/