Write a program using class template to sort two lists of numbers, one integer list and another floating point list.

Sep 23, 2018

Program source code:

#include<iostream>
using namespace std;

// template program to sort numvers
// using class, sorts in ascending order
template 
class Array
{
	// here we use pointer to make dynamic 
	// array to initialize
	private:
		T *arrayp;
		int SIZE;
	public:
		Array(int si){
			SIZE = si;
			arrayp = new T[SIZE];
		}
		void read_elements(){
			for (int i = 0; i < SIZE; i++)
			{
				cin>>*(arrayp + i);
			}
		}
		void sort(){
			for (int i = 0; i < SIZE; i++)
			{
				for (int j = i+1; j < SIZE; j++)
				{
					if (*(arrayp + i) > *(arrayp + j))
					{
						T temp;
						temp = *(arrayp + i);
						*(arrayp + i) = *(arrayp + j);
						*(arrayp + j) = temp;
					}
				}
			}
		}
		void display(){
			for (int i = 0; i < SIZE; i++)
			{
				cout<<*(arrayp + i)<<", ";
			}
			cout<<endl;
		}
		// lets create destructor to deallocate
		~Array(){
			delete [] arrayp;
		}
};


int main(){
	int int_size, float_size;
	cout<<"Enter array size of integer array:"<<endl;
	cin>>int_size;
	cout<<"Enter array size of floating array:"<<endl;
	cin>>float_size;
	Array int_array(int_size);
	Array float_array(float_size);
	cout<<"Enter Integer array:"<<endl;
	int_array.read_elements();
	cout<<"Enter Floating array:"<<endl;
	float_array.read_elements();
	cout<<"Before sorting they are :"<<endl;
	int_array.display();
	float_array.display();
	int_array.sort();
	float_array.sort();
	cout<<"After sorting they are :"<<endl;
	int_array.display();
	float_array.display();
	return 0;
}

 

Sample Run:

Enter array size of integer array:
8
Enter array size of floating array:
10
Enter Integer array:
1
2
3
9
5
4
6
7
Enter Floating array:
34.6464
4545.545
7766.6456
46546.656
5656.656
232.3434
989898.657567
5676.575 
456.5656
44.444 
Before sorting they are :
1, 2, 3, 9, 5, 4, 6, 7, 
34.6464, 4545.54, 7766.65, 46546.7, 5656.66, 232.343, 989899, 5676.58, 456.566, 44.444, 
After sorting they are :
1, 2, 3, 4, 5, 6, 7, 9, 
34.6464, 44.444, 232.343, 456.566, 4545.54, 5656.66, 5676.58, 7766.65, 46546.7, 989899, 

 

Note: for sorting using function template please refer another post

Related


Tools/Apps





© Nepal Exchange Rates