home *** CD-ROM | disk | FTP | other *** search
/ C/C++ User's Journal & Wi…eveloper's Journal Tools / C-C__Users_Journal_and_Windows_Developers_Journal_Tools_1997.iso / windbase / memslcpp.3 / set1.cpp < prev    next >
C/C++ Source or Header  |  1996-05-11  |  6KB  |  168 lines

  1. /***************************************************************************\
  2. **                                                                         **
  3. ** WW     WW IIIIIIII NNN   NN DDDDDDD  BBBBBBB     AA     SSSSSS EEEEEEEE **
  4. ** WW  W  WW    II    NNNN  NN DD    DD BB    BB  AA  AA  SS      EE       **
  5. ** WW  W  WW    II    NN NN NN DD    DD BBBBBBB  AAAAAAAA  SSSSSS EEEEEE   **
  6. **  WW W WW     II    NN  NNNN DD    DD BB    BB AA    AA      SS EE       **
  7. **   WWWWW   IIIIIIII NN   NNN DDDDDDD  BBBBBBB  AA    AA SSSSSS  EEEEEEEE **
  8. **                                                                         **
  9. **  SSSSSS  OOOOOO  FFFFFFFF TTTTTTTT WW     WW    AA    RRRRRRR  EEEEEEEE **
  10. ** SS      OO    OO FF          TT    WW  W  WW  AA  AA  RR    RR EE       **
  11. **  SSSSS  OO    OO FFFFF       TT    WW  W  WW AAAAAAAA RRRRRRR  EEEEEE   **
  12. **      SS OO    OO FF          TT     WW W WW  AA    AA RR   RR  EE       **
  13. ** SSSSSS   OOOOOO  FF          TT      WWWWW   AA    AA RR    RR EEEEEEEE **
  14. **                                                                         **
  15. ********** NOTICE ***********************************************************
  16. **       This file contains valuable trade secrets and proprietary         **
  17. **       assets of Windbase Software Inc.  Embodying substantial           **
  18. **       creative efforts and confidential information.  Unauthorized      **
  19. **       use, copying, decompiling, translating, disclosure or             **
  20. **       transfer, of any kind, is strictly prohibited.                    **
  21. **                                                                         **
  22. **       COPYRIGHT (C) 1992, 1993, 1994, 1995.  Windbase Software Inc.     **
  23. **       ALL RIGHTS RESERVED.                                              **
  24. \***************************************************************************/
  25.  
  26. /*
  27. ** Set - Templates Version
  28. */
  29.  
  30. int WBCompareFunct(void *nullitem, char *item1, char *item2)
  31.   {
  32.     nullitem = nullitem;
  33.  
  34.     return(strcmp(item1,item2));
  35.   }
  36.  
  37. void WBExecuteFunct(void *nullitem, char *item)
  38.   {
  39.     nullitem = nullitem;
  40.  
  41.     cout << "Execute: " << item << "\n";
  42.   }
  43.  
  44. char *WBCopyFunct(void *nullitem, char *item)
  45.   {
  46.     nullitem = nullitem;
  47.  
  48.     return(item);
  49.   }
  50.  
  51. main()
  52.   {
  53.     WBSet<char *> set1, set2, newset;
  54.     int rval;
  55.  
  56.     set1.SetCompare(NULL,WBCompareFunct);
  57.     set1.SetExecute(NULL,WBExecuteFunct);
  58.  
  59.     set2.SetCompare(NULL,WBCompareFunct);
  60.     set2.SetExecute(NULL,WBExecuteFunct);
  61.  
  62.     newset.SetCompare(NULL,WBCompareFunct);
  63.     newset.SetExecute(NULL,WBExecuteFunct);
  64.     newset.SetCopy(NULL,WBCopyFunct);
  65.  
  66.     set1+="Item01";
  67.     set1+="Item02";
  68.     set1+="Item03";
  69.     set1+="Item04";
  70.     set1+="Item05";
  71.     set1+="Item07";
  72.  
  73.     set2+="Item03";
  74.     set2+="Item04";
  75.     set2+="Item05";
  76.     set2+="Item06";
  77.     set2+="Item07";
  78.     set2+="Item08";
  79.     set2+="Item09";
  80.     set2+="Item10";
  81.     set2+="Item11";
  82.  
  83.     cout << "Set one members\n";
  84.     set1.Execute();
  85.     cout << "Set two members\n";
  86.     set2.Execute();
  87.  
  88.     cout << "SetCmp(): return val == " << set1.SetCmp(set2,&rval);
  89.     cout << " rval == " << rval << "\n";
  90.     cout << "IsEqual(): " << (set1.IsEqual(set2) ? "True" : "False") << "\n";
  91.     cout << "IsSubset(): " << (set1.IsSubset(set2) ? "True" : "False") << "\n";
  92.     cout << "IsSuperset(): " << (set1.IsSuperset(set2) ? "True" : "False") << "\n";
  93.     cout << "set1 < set2: " << (set1 < set2 ? "True" : "False") << "\n";
  94.     cout << "set1 <= set2: " << (set1 <= set2 ? "True" : "False") << "\n";
  95.     cout << "set1 > set2: " << (set1 > set2 ? "True" : "False") << "\n";
  96.     cout << "set1 >= set2: " << (set1 >= set2 ? "True" : "False") << "\n";
  97.     cout << "set1 == set2: " << (set1 == set2 ? "True" : "False") << "\n";
  98.     cout << "set1 != set2: " << (set1 != set2 ? "True" : "False") << "\n";
  99.  
  100.     cout << "Union Operators\n";
  101.     cout << "newset.Union(set1,set2)\n";
  102.     newset.Clear();
  103.     newset.Union(set1,set2);
  104.     newset.Execute();
  105.  
  106.     cout << "newset = set1\n";
  107.     newset = set1;
  108.     newset.Execute();
  109.  
  110.     cout << "newset += set2\n";
  111.     newset += set2;
  112.     newset.Execute();
  113.  
  114.     cout << "newset = set1 + set2\n";
  115.     newset = set1 + set2;
  116.     newset.Execute();
  117.  
  118.     cout << "Difference Operators\n";
  119.     cout << "newset.Difference(set1,set2)\n";
  120.     newset.Clear();
  121.     newset.Difference(set2,set1);
  122.     newset.Execute();
  123.  
  124.     cout << "newset = set2\n";
  125.     newset = set2;
  126.     newset.Execute();
  127.  
  128.     cout << "newset -= set1\n";
  129.     newset -= set1;
  130.     newset.Execute();
  131.  
  132.     cout << "newset = set2 - set1\n";
  133.     newset = set2 - set1;
  134.     newset.Execute();
  135.  
  136.     cout << "Intersection Operators\n";
  137.     cout << "newset.Intersection(set1,set2)\n";
  138.     newset.Clear();
  139.     newset.Intersection(set1,set2);
  140.     newset.Execute();
  141.  
  142.     cout << "newset = set1\n";
  143.     newset = set1;
  144.     newset.Execute();
  145.  
  146.     cout << "newset *= set2\n";
  147.     newset *= set2;
  148.     newset.Execute();
  149.  
  150.     cout << "newset = set1 * set2\n";
  151.     newset = set1 * set2;
  152.     newset.Execute();
  153.  
  154.     cout << "SetCmp(): return val == " << newset.SetCmp(set2,&rval);
  155.     cout << " rval == " << rval << "\n";
  156.     cout << "IsEqual(): " << (newset.IsEqual(set2) ? "True" : "False") << "\n";
  157.     cout << "IsSubset(): " << (newset.IsSubset(set2) ? "True" : "False") << "\n";
  158.     cout << "IsSuperset(): " << (newset.IsSuperset(set2) ? "True" : "False") << "\n";
  159.     cout << "newset < set2: " << (newset < set2 ? "True" : "False") << "\n";
  160.     cout << "newset <= set2: " << (newset <= set2 ? "True" : "False") << "\n";
  161.     cout << "newset > set2: " << (newset > set2 ? "True" : "False") << "\n";
  162.     cout << "newset >= set2: " << (newset >= set2 ? "True" : "False") << "\n";
  163.     cout << "newset == set2: " << (newset == set2 ? "True" : "False") << "\n";
  164.     cout << "newset != set2: " << (newset != set2 ? "True" : "False") << "\n";
  165.  
  166.     return(0);
  167.   }
  168.