home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1997 May
/
Pcwk0597.iso
/
borland
/
cb
/
setup
/
cbuilder
/
data.z
/
MERGE.CPP
< prev
next >
Wrap
Text File
|
1997-02-28
|
2KB
|
73 lines
#include <algorithm>
#include <vector>
using namespace std;
int main ()
{
int d1[4] = {1,2,3,4};
int d2[8] = {11,13,15,17,12,14,16,18};
//
// Set up two vectors.
//
vector<int> v1(d1+0, d1+4), v2(d1+0, d1+4);
//
// Set up four destination vectors.
//
vector<int> v3(d2+0, d2+8), v4(d2+0, d2+8), v5(d2+0, d2+8), v6(d2+0, d2+8);
//
// Set up one empty vector.
//
vector<int> v7;
//
// Merge v1 with v2.
//
merge(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin());
//
// Now use comparator.
//
merge(v1.begin(), v1.end(), v2.begin(), v2.end(), v4.begin(), less<int>());
//
// In place merge v5.
//
vector<int>::iterator mid = v5.begin();
advance(mid,4);
inplace_merge(v5.begin(),mid,v5.end());
//
// Now use a comparator on v6.
//
mid = v6.begin();
advance(mid,4);
inplace_merge(v6.begin(), mid, v6.end(), less<int>());
//
// Merge v1 and v2 to empty vector using insert iterator.
//
merge(v1.begin(), v1.end(), v2.begin(), v2.end(), back_inserter(v7));
//
// Copy all cout.
//
ostream_iterator<int> out(cout," ");
copy(v1.begin(),v1.end(),out);
cout << endl;
copy(v2.begin(),v2.end(),out);
cout << endl;
copy(v3.begin(),v3.end(),out);
cout << endl;
copy(v4.begin(),v4.end(),out);
cout << endl;
copy(v5.begin(),v5.end(),out);
cout << endl;
copy(v6.begin(),v6.end(),out);
cout << endl;
copy(v7.begin(),v7.end(),out);
cout << endl;
//
// Merge v1 and v2 to cout.
//
merge(v1.begin(),v1.end(),v2.begin(),v2.end(),
ostream_iterator<int>(cout," "));
cout << endl;
return 0;
}