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: