简单问题,STL中如何求两个set的交集?

rtdb 2004-09-28 11:39:44
#include <set>
#include <algorithm>
using namespace std;

int main()
{
set<int> s1 ;
set<int> s2 ;
s1.insert(1) ;
s1.insert(2) ;
s2.insert(2) ;
s2.insert(3) ;

set<int> s3 ;
s3 = s1 && s2 ;//求两个set的交集
cout << s3.size() << endl ;

return 0;
}
...全文
842 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rtdb 2004-09-28
  • 打赏
  • 举报
回复
多谢,不过如下写法会死循环,请继续指教。

set_intersection(s1.begin(), s1.end(), s2.begin(), s2.end(), s3.begin()) ;//求两个set的交集
insulator 2004-09-28
  • 打赏
  • 举报
回复
set_intersection (InputIterator source1Beg, InputIterator source1End,
InputIterator source2Beg, InputIterator source2End, OutputIterator destBeg)


set_intersection (InputIterator source1Beg, InputIterator source1End,
InputIterator source2Beg, InputIterator sotirce2End, OutputIterator destBeg,
BinaryPredicate op)
hxblvc 2004-09-28
  • 打赏
  • 举报
回复
学习.......
freefalcon 2004-09-28
  • 打赏
  • 举报
回复
范型算法: set_intersection
rtdb 2004-09-28
  • 打赏
  • 举报
回复
多谢 qwertasdfg123(流星) ,测试通过。
qwertasdfg123 2004-09-28
  • 打赏
  • 举报
回复
set<int> s3 ;
set<int>::iterator iter = s3.begin() ;

set_intersection(s1.begin(),s1.end(),s2.begin(),s2.end(),inserter(s3,iter));
copy(s3.begin(),s3.end(), ostream_iterator<int>(cout," "));
rtdb 2004-09-28
  • 打赏
  • 举报
回复
UP

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧