home *** CD-ROM | disk | FTP | other *** search
- //: C21:MergeTest.cpp
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // Test merging in sorted ranges
- #include <algorithm>
- #include "PrintSequence.h"
- #include "Generators.h"
- using namespace std;
-
- int main() {
- const int sz = 15;
- int a[sz*2] = {0};
- // Both ranges go in the same array:
- generate(a, a + sz, SkipGen(0, 2));
- generate(a + sz, a + sz*2, SkipGen(1, 3));
- print(a, a + sz, "range1", " ");
- print(a + sz, a + sz*2, "range2", " ");
- int b[sz*2] = {0}; // Initialize all to zero
- merge(a, a + sz, a + sz, a + sz*2, b);
- print(b, b + sz*2, "merge", " ");
- // set_union is a merge that removes duplicates
- set_union(a, a + sz, a + sz, a + sz*2, b);
- print(b, b + sz*2, "set_union", " ");
- inplace_merge(a, a + sz, a + sz*2);
- print(a, a + sz*2, "inplace_merge", " ");
- } ///:~
-