You are on page 1of 14

CLASS TEMPLATE

ARRAY

PREPARED BY: HIBBA TABEER


ROLL NO: 211819
PRESENTED TO: MRS. MISBAH
WHY USE TEMPLATES?

DRY(don’t
Generic
repeat
programming
yourself)
template<class T>
class vector {
T* arr;
public:
vector(T* ar) {

SYNTAX FOR }
//code

TEMPLATES: };
//and many other methods

int main() {
vector<int> myvec(ptr);
vector<float> myvec(ptr);
}
CLASS TEMPLATE:

 As per the standard definition, a


template class in C++ is a class
that allows the programmer to
operate with generic data types.
This allows the class to be used
on many different data types as
per the requirements without the
need of being rewritten for each
type.
template <class identifier>
class template_class_name {
templete_identifier args;
public:
SYNTAX OF template_class_name() {
CLASS }
TEMPLATE: templete_identifier
fn_name(templete_identifier ..args)
{
return ...
}
};
#include<iostream>
using namespace std;
template <class T>
class vector {
public:
T* arr;
int size;
EXAMPLE vector(int m) {
PROGRAM: size = m;
arr = new T[size];
}
T dotproduct(vector& v) {
T d = 0;
for (int i = 0; i < size; i++) {
d += this->arr[i] * v.arr[i];
}
return d;
}
};
int main() {
vector <int>v1(4);
v1.arr[0] = 4;
v1.arr[1] = 3 ;
v1.arr[2] = 5;
v1.arr[3] = 1;
CONT... vector <int>v2(4);
v2.arr[0] = 1;
v2.arr[1] = 4;
v2.arr[2] = 2;
v2.arr[3] = 9;
int i = v1.dotproduct(v2);
cout << "Value of integer values is:" << i <<
endl;
// 4*1+3*4+5*2+1*9
vector <float>v3(4);
v3.arr[0] = 4.1;
v3.arr[1] = 3.8;
v3.arr[2] = 5.4;
v3.arr[3] = 1.3;
vector <float>v4(4);
v4.arr[0] = 1.1;
CONT… v4.arr[1] = 4.0;
v4.arr[2] = 2.2;
v4.arr[3] = 9.4;
float f = v3.dotproduct(v4);
cout << "Value of floating values are:"
<< f << endl;
//4.1*1.1+3.8*4.0+5.4*2.2+1.3*9.4
}
ANOTHER
PROGRAM
FOR
EXAMPLE:
#include <iostream>
#define MAX_SIZE 5
using namespace std;
// Template Declaration
template<class T>
class TClassSearch { // Generic Template
Class for Search
T x[MAX_SIZE];
T element;

PROGRAM: public:
TClassSearch()
{
}
void readElements()
{
int i = 0;
for (i = 0; i < MAX_SIZE; i++)
cin >> x[i];
//x*=t_x; element=t_element;
cout << "\nEnter Element to Search : ";
cin >> element;
T getSearch() {
int i;
cout << "\nYour Data :";
for (i = 0; i < MAX_SIZE; i++) {
cout << "\t" << x[i];
} /* for : Check elements one by one -
Linear */
for (i = 0; i < MAX_SIZE; i++) {
/* If for Check element found or not */
if (x[i] == element) {

CONT… cout << "\nClass Template Search :


Element : " << element << " : Found : Position : " <<
i + 1 << ".\n";
break;
}
}
if (i == MAX_SIZE)
cout << "\nSearch Element : " << element <<
" : Not Found \n";
return 0;
}
};
int main() {
TClassSearch <int> iMax =
TClassSearch<int>();
TClassSearch <float> fMax =
TClassSearch<float>();
cout << "Simple Class Template
Array Program Example : Search Number\
n";
cout << "\nEnter " << MAX_SIZE << "
Elements for Searching Int : " << endl;
CONT… iMax.readElements();
iMax.getSearch();
cout << "\nEnter " << MAX_SIZE << "
Elements for Searching float : " <<
endl;
fMax.readElements();
fMax.getSearch();
return 0;
}
ANY
QUESTION???
THANK YOU…

You might also like