词条 | 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。