set_difference

set_difference:C++ STL通用算法函式,函式申明:_OIset_difference<class _II1,class _II2,class _OI>(_II1 _F1,_II1 _L1,_II2 _F2,_II2 _L2,_OI _X);用於求兩個集合的差集,結果集合中包含所有屬於第一個集合但不屬於第二個集合的元素。

基本介紹

  • 中文名:C++ STL通用算法函式
  • 外文名:set_difference
  • 套用領域:計算機編程
  • 類型:C++
函式返回值:結果集合的結束位置疊代器
參數:第一個集合的開始位置,第一個集合的結束位置,第二個參數的開始位置,第二個參數的結束位置,結果集合的插入疊代器
舉例:
#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<<" ";

相關詞條

熱門詞條

聯絡我們