Merging of two arrays means to form one big array from two small arrays, which
has element from both the arrays linearly.
Ex. if we have the following two arrays:
array1 [5] = {1,2,3,4,5}
array2 [5] = {6,7,8,9,10}
and we merge these two arrays to form an array merge_array, then it would have
these elements:
merge_array [5] ={1,2,3,4,5,6,7,8,9,10}
So, from this example we understand that the array which will hold the merged
elements should have a dimension equal to the sum of the dimensions of the two
discrete arrays.
It is no big deal to merge two arrays, we just need to sum up the dimension
of the arrays, and then allocate an array having that dimension.
Below is the example program that illustrates this.
Please go through the program to understand every bit of it. It is accompanied
with enough comments to make everything clear. While two arrays has been merged
here, you can easily modify it to merge as many arrays as you wish.
// -- Array Merging --
// -- Program --
// -------------------
// Example program to illustrate
// the merging of arrays
#include<iostream.h>
// process.h is needed for
// the exit function
#include<process.h>
void main(void)
{
int i,j;
// declare pointers for the needed
// arrays
int *array1,*array2;
int *merge_array;
// variables for the sizes of the arrays
// given by the user
int size_array1,size_array2,size_array3;
// input the number of elements
// required, by the user
cout<<"enter no. of elements for array1:";
cin>>size_array1;
cout<<"enter no. of elements for array2:";
cin>>size_array2;
// calculate the no. of elements
// required for the merge_array
size_array3=size_array1+size_array2;
// allocate the required arrays
array1=new int[size_array1];
array2=new int[size_array2];
merge_array=new int[size_array3];
// terminate if there is a problem in
// memory allocation of the arrays
if(array1==NULL || array2==NULL || merge_array==NULL)
exit(1);
// input the array elements
cout<<"\nFirst Array:\n";
for(i=0;i<size_array1;i++)
{
cout<<"element "<<i+1<<":";
cin>>array1[i];
}
cout<<"\nSecond Array:\n";
for(i=0;i<size_array2;i++)
{
cout<<"element "<<i+1<<":";
cin>>array2[i];
}
// merging is being done here
for(i=0;i<size_array1;i++)
merge_array[i]=array1[i];
for(j=0;j<size_array2;j++)
merge_array[i+j]=array2[j];
// till here
for(i=0;i<size_array3;i++)
{
cout<<"\n";
cout<<"element "<<i+1<<":";
cout<<merge_array[i];
}
cout<<endl;
// free-up the memory
delete[] array1;
delete[] array2;
delete[] merge_array;
}
Good-Bye!
Related Articles: