CPP/STL/SetDifference

From ProgrammingExamples
< CPP
Revision as of 15:36, 28 June 2010 by Daviddoria (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

SetDifference.cpp

#include <iostream>
#include <list>
#include <algorithm>
#include <string>
#include <iterator>
 
template<class Coll>
void print(const Coll c)
{
  using std::cout;
  using std::endl;
 
  typename Coll::const_iterator itr = c.begin();
  cout << "{ ";
  while(itr != c.end())
  {
    cout << *itr++ << " ";
  }
  cout << "}";
}
 
int main()
{	
  using namespace std;
  string s1 = "abc";
  string s2 = "abd";
  list<char> a = list<char>(s1.begin(),s1.end());
  list<char> b = list<char>(s2.begin(),s2.end());
  list<char> res;
 
  std::set_difference(a.begin(),a.end(),b.begin(),b.end(),std::back_insert_iterator<list<char> >(res));
  print(a);
  cout << " - ";
  print(b);	
  cout << " = ";
  print(res);
  cout << endl;
 
  return 0;
}