c++ - 列表容器上的 std::set_difference

标签 c++ list stl set-difference

我正在尝试调用 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/

相关文章:

c++ - 缩放旋转剪切反射算法

使用模板的 C++ 抽象工厂

java - 删除包含数组的列表中的重复项

C++:从 container1 中查找不在 container2 中的任何元素

c++ - c++ 中的 pair class STL 有什么用,它像数据类型还是容器?

c++ - 使用数组作为映射键 : impossible even with custom allocator?

c++ - 不能对 std::set<std::string, std::less<>> 使用用户提供的比较函数

c++ - 以 RAW 形式恢复磁盘内容并转储为一个大二进制文件的应用程序?

python - 在行和列中拆分数组

mysql - 如何获取数据库中具有选定前缀的所有表的列表?