home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Ebooks / Thinking in C++ V2 / C21 / MergeTest.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-25  |  922 b   |  29 lines

  1. //: C21:MergeTest.cpp
  2. // From Thinking in C++, 2nd Edition
  3. // Available at http://www.BruceEckel.com
  4. // (c) Bruce Eckel 1999
  5. // Copyright notice in Copyright.txt
  6. // Test merging in sorted ranges
  7. #include <algorithm>
  8. #include "PrintSequence.h"
  9. #include "Generators.h"
  10. using namespace std;
  11.  
  12. int main() {
  13.   const int sz = 15;
  14.   int a[sz*2] = {0};
  15.   // Both ranges go in the same array:
  16.   generate(a, a + sz, SkipGen(0, 2));
  17.   generate(a + sz, a + sz*2, SkipGen(1, 3));
  18.   print(a, a + sz, "range1", " ");  
  19.   print(a + sz, a + sz*2, "range2", " ");
  20.   int b[sz*2] = {0}; // Initialize all to zero
  21.   merge(a, a + sz, a + sz, a + sz*2, b);
  22.   print(b, b + sz*2, "merge", " ");
  23.   // set_union is a merge that removes duplicates
  24.   set_union(a, a + sz, a + sz, a + sz*2, b);
  25.   print(b, b + sz*2, "set_union", " ");
  26.   inplace_merge(a, a + sz, a + sz*2);
  27.   print(a, a + sz*2, "inplace_merge", " ");
  28. } ///:~
  29.