C++问题求大神解决集合差集的问题!(高悬赏)

如题:我想调用函数库里面的set_difference()函数,求他们的差集!但是输出的结果不正确。求解!(大神们尽量不要给程序做大手术!谢谢你们了!回答好的,我还会悬赏... 如题:
我想调用函数库里面的set_difference()函数,求他们的差集!但是输出的结果不正确。求解!(大神们尽量不要给程序做大手术!谢谢你们了!回答好的,我还会悬赏!)
#include <iostream>
#include <stdio.h>
#include <algorithm>

using namespace std;

int main()
{
int a[10]={9,8,7,6,5,4,3,2,1,0};
int b[5]={0,1,2,3,4};
int c[20];
set_difference(a,a+10,b,b+5,c);
int *p=c;
while(*p)
{
cout<<*p<<"\t";
*p++;
}
return 0;
}
展开
 我来答
kaixingui2012
推荐于2016-11-08 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6488万
展开全部
#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    int a[]={9,8,7,6,5,4,3,2,1,0};
    int b[]={4,3,2,1,0};
    int c[20]={0};

sort( a,a+10);//先排序
sort( b,b+5);
    int *end=set_difference(a,a+10, b,b+5, c); //end记录结果集的尾指针
    int *p=c;
    while(p!=end) //从c的首地址,到end位置,逐个输出结果元素
    {
        cout<<*p<<"\t";
        p++;
    }
    return 0;
}
追问
非常感谢!谢谢谢谢!
wchyumo2011
2015-04-08 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2855万
展开全部
首先使用set_difference()函数的默认条件就是两个数组都要从小到大排序之后才能使用
更多追问追答
追问

请问红圈外面的乱码部分如何解决?谢谢你了!

追答
程序~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0cc22311d
2015-04-08 · TA获得超过552个赞
知道小有建树答主
回答量:661
采纳率:100%
帮助的人:266万
展开全部
int a[10]={9,8,7,6,5,4,3,2,1,0};

改为
int a[10]={0,1,2,3,4,5,6,7,8,9};

set_difference 处理需要 数据 升序。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式