thespeedracer38

Class Template for Dynamic Array and Linear Search

Mar 18th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. using namespace std;
  5.  
  6. template <class T, int size = 0>
  7. class Array{
  8.     T *arr;
  9.     int length;
  10.     public:
  11.         Array();
  12.         ~Array();
  13.         Array(int);
  14.         void input();
  15.         void linearSearch(T);
  16. };
  17.  
  18. template <class T, int size>
  19. inline Array<T, size>::Array(){
  20.     length = size;
  21.     arr = new T[length];
  22. }
  23.  
  24. template <class T, int size>
  25. inline Array<T, size>::~Array(){
  26.     delete[] arr;
  27. }
  28.  
  29. template <class T, int size>
  30. inline Array<T, size>::Array(int length){
  31.     arr = new T[Array::length = length];
  32. }
  33.  
  34. template <class T, int size>
  35. inline void Array<T, size>::input(){
  36.     for(int i = 0; i < length; i++){
  37.         cout << "arr[" << i << "] = ";
  38.         cin >> arr[i];
  39.     }
  40. }
  41.  
  42. template <class T, int size>
  43. inline void Array<T, size>::linearSearch(T key){
  44.     for(int i = 0; i < length; i++){
  45.         if(arr[i] == key){
  46.             cout << key << " found at " << i << " position\n" ;
  47.         }
  48.     }
  49. }
  50.  
  51. int main() {
  52.     system("cls");
  53.     cout << "For integer array" << endl;
  54.     Array<int, 5> obj1;
  55.     obj1.input();
  56.     cout << "Enter an element to be searched: ";
  57.     int key1;
  58.     cin >> key1;
  59.     obj1.linearSearch(key1);
  60.    
  61.     cout << "For double array" << endl;
  62.     Array<float> obj2(5);
  63.     obj2.input();
  64.     cout << "Enter an element to be searched: ";
  65.     float key2;
  66.     cin >> key2;
  67.     obj2.linearSearch(key2);
  68.     return 0;
  69. }
Add Comment
Please, Sign In to add comment