home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / VSCPPv8.zip / VACPP / IBMCPP / samples / IOC / EVENODD / EVENODD.CPP < prev    next >
Text File  |  1995-03-15  |  3KB  |  85 lines

  1. /*************************************************************************
  2.   IBM C/C++ Tools Version 3.00 - Collection Class Library
  3.  (C) Copyright IBM Corporation 1992 ,1995, Licensed Program-Property of
  4.  IBM.  All Rights Reserved.  US Government Users Restricted Rights - Use,
  5.  duplication or disclosure restricted by GSA ADP Schedule Contract with
  6.  IBM Corp.
  7.  *************************************************************************/
  8.  
  9. /*--------------------------------------------------------------*\
  10. |                                                                |
  11. |  evenodd.CPP  -  Even and Odd numbers are handled in different |
  12. |                  Sets do demonstrate using Sets.               |
  13. |                                            """                 |
  14. \*--------------------------------------------------------------*/
  15.  
  16. #include <iostream.h>
  17.  
  18. #include <iset.h>        // Take the defaults for the Set and for
  19.                          // the required functions for integer
  20. typedef ISet <int> IntSet;
  21.  
  22. /*-------------------------------------------------------------*\
  23. | For iteration we want to use an object of an iterator class   |
  24. \*-------------------------------------------------------------*/
  25. class PrintClass : public IIterator<int>  {
  26.   public:
  27.     virtual IBoolean applyTo(int& i)
  28.       { cout << " " << i << " "; return True;}
  29. };
  30.  
  31.  
  32. /*-------------------------------------------------------------*\
  33. | Local prototype for the function to display an IntSet.        |
  34. \*-------------------------------------------------------------*/
  35. void    List(char *, IntSet &);
  36.  
  37.  
  38. /*-------------------------------------------------------------*\
  39. | Main program                                                  |
  40. \*-------------------------------------------------------------*/
  41. int main ()  {
  42.    IntSet odd, prime;
  43.    IntSet oddPrime, evenPrime;
  44.  
  45.    int One = 1, Two = 2, Three = 3, Five = 5, Seven = 7, Nine = 9;
  46.  
  47. // Fill odd set with odd integers < 10
  48.    odd.add( One );
  49.    odd.add( Three );
  50.    odd.add( Five );
  51.    odd.add( Seven );
  52.    odd.add( Nine );
  53.    List("Odds less than 10:  ", odd);
  54.  
  55. // Fill prime set with primes < 10
  56.    prime.add( Two );
  57.    prime.add( Three );
  58.    prime.add( Five );
  59.    prime.add( Seven );
  60.    List("Primes less than 10:  ", prime);
  61.  
  62. // Intersect 'Odd' and 'Prime' to give 'OddPrime'
  63.    oddPrime.addIntersection( odd, prime);
  64.    List("Odd primes less than 10:  ", oddPrime);
  65.  
  66. // Subtract all 'Odd' from 'Prime' to give 'EvenPrime'
  67.    evenPrime.addDifference( prime, oddPrime);
  68.    List("Even primes less than 10:  ", evenPrime);
  69.  
  70.    return(0);
  71. }
  72.  
  73. /*-------------------------------------------------------------*\
  74. | Local function to display an IntSet.                          |
  75. \*-------------------------------------------------------------*/
  76.  
  77. void List(char *Message, IntSet &anIntSet)  {
  78.    PrintClass Print;
  79.  
  80.    cout << Message;
  81.    anIntSet.allElementsDo(Print);
  82.    cout << endl;
  83. }
  84.  
  85.