我有一个类有两个属性:
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/