请输入您要查询的百科知识:

 

词条 set_difference
释义

set_difference:

C++ STL通用算法函数,函数申明:

_OI set_difference<class _II1,class _II2,class _OI>(_II1 _F1,_II1 _L1,_II2 _F2,_II2 _L2,_OI _X);

用于求两个集合的差集,结果集合中包含所有属于第一个集合但不属于第二个集合的元素。

函数返回值:结果集合的结束位置迭代器。

参数:第一个集合的开始位置,第一个集合的结束位置,第二个参数的开始位置,第二个参数的结束位置,结果集合的插入迭代器。

举例:

#pragma warning (disable:4786)

#include <algorithm>

#include <iostream>

#include <ctime>

#include <set>

using namespace std;

int main()

{

srand(time(0));

/////////////////////////////////////////////////////////

set<int> sa,sb,sc;

int i;

for(i=0;i<20;i++)

{

sa.insert(rand()%20);

sb.insert(rand()%20);

}

set_difference(sa.begin(),sa.end(),sb.begin(),sb.end(),inserter(sc,sc.begin())); //最后一个参数为一个插入迭代器

copy(sa.begin(),sa.end(),ostream_iterator<int>(cout," "));

cout<<endl;

copy(sb.begin(),sb.end(),ostream_iterator<int>(cout," "));

cout<<endl;

copy(sc.begin(),sc.end(),ostream_iterator<int>(cout," "));

cout<<endl;

/////////////////////////////////////////////////////////

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

int b[]={2,4,6,8,10,12,14,16,18,20};

int c[20];

int * end=set_difference(a,a+10,b,b+10,c); //最后一个参数为一个数组的指针

for(int * p=c;p!=end;p++)

cout<<* p<<" ";

cout<<endl;

return 0;

}

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/21 0:27:43