c++ - 为什么编译器在我的 set_intersection 上给我一个错误?

标签 c++ set set-intersection

我有一个类有两个属性:

 set< int > ens1_;
 set< int > ens2_;

现在,我有一个方法可以找到这两个集合之间的交集。这是我在我的方法中写的:

set< int > ens;
set< int >::iterator it;

it = set_intersection(ensEntier1_.begin(), ensEntier1_.end(), ensEntier2_.begin(), ensEntier2_.end(), ens.begin());
return ens;

它在 STL_algo.h 内部编译时给我一个错误,但我不知道从哪里开始更正错误

谢谢你的时间

艾蒂安

最佳答案

set_intersection 的第 5 个参数您正在调用的重载需要一个输出迭代器; ens.begin() 返回输出迭代器。试试这个:

set<int> ens;
set_intersection(
    ens1_.begin(),
    ens1_.end(),
    ens2_.begin(),
    ens2_.end(),
    inserter(ens, ens.end())
);
return ens;

注意:确保你#include <iterator> .

关于c++ - 为什么编译器在我的 set_intersection 上给我一个错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5527260/

相关文章:

c++ - std::array 派生类聚合初始化

R:在 0 和 1 的矩阵中查找包含最多 1 的列集

python - 从列表中提取与第三个列表中包含的另一个列表的项目具有相同索引的值

python - 在两个文件夹中查找名称首字母相同的文件

Python:基于交集的简单列表合并

c++ - 减去包含重复元素的 vector

c++ - 具有责任转移的转换构造函数

c++ - 制作可变大小结构的方法

使用运算符的 C++ 序列化文件>>

java - 将一个集合分成更小的集合 - Java