12.1

Write a function template for finding the minimum value contained in an array.

```#include<iostream>
using namespace std;
const int size=5;
template <class T>
class vector
{
T v[size];
public:
vector(){}
vector(T *b);
void show();
minimum(vector<T> &m);
};
template <class T>
vector<T>::vector(T *b)
{
for(int i=0;i<size;i++)
v[i]=b[i];

}
template<class T>
T vector<T>::minimum(vector<T> &m)
{
int j=0;
for(int k=1;k<size;k++)
{
if(m.v[j]>m.v[k])
j=k;
}
return m.v[j];
}
template<class T>
void vector<T>::show()
{
cout<<"("<<v[0];
for(int i=1;i<size;i++)
cout<<","<<v[i];
cout<<")";
cout<<"\n";
}
int main()
{

int x[size]={5,7,3,1,8};//size is 5;
float y[size]={1.2,1.5,2.3,1.0,0.501};
vector<int> v1;
vector<float> v2;
v1=x;
v2=y;
cout<<" minimum value = "<<v1.minimum(v1)<<" of array";
v1.show();
cout<<" minimum value = "<<v2.minimum(v2)<<" of array";
v2.show();

return 0;
}```

## OUTPUT

minimum value = 1 of array(5,7,3,1,8)
minimum value = 0.501 of array(1.2,1.5,2.3,1,0.501)

12.2

Write a class template to represent a generic vector. Include member functions to perform the following tasks:

• (a) To create the vector
• (b) To modify the value of a given element
• (c) To multiply by a scalar value
• (d) To display the vector in the following form (10, 20, 30 …)
```#include<iostream>
#include<iomanip>
using namespace std;
template <class santo>
class vector
{
float *p;
int size;
public:
void creat_vector(santo a);
void set_element(int i,santo value);
void modify(void);
void multiply(santo b);
void display(void);
};
template <class santo>
void vector<santo>::creat_vector(santo a)
{
size=a;
p=new float[size];
}
template <class santo>
void vector<santo>::set_element(int i,santo value)
{
p[i]=value;
}

template <class santo>
void vector<santo> :: multiply(santo b)
{
for(int i=0;i<size;i++)
p[i]=b*p[i];
}
template <class santo>
void vector<santo>:: display(void)
{
cout<<"p["<<size<<"] = ( ";
for(int i=0;i<size;i++)
{
if(i==size-1)
cout<<p[i];
else
cout<<p[i]<<" , ";

}
cout<<")"<<endl;
}

template <class santo>
void vector<santo>::modify(void)
{
int i;
cout<<" to edit a given element enter position of the element : ";
cin>>i;
i--;
cout<<" Now enter new value of "<<i+1<<"th  element : ";
santo v;
cin>>v;
p[i]=v;
cout<<" Now new contents : "<<endl;
display();

cout<<" to delete an element enter position of the element :";
cin>>i;
i--;

for(int j=i;j<size;j++)
{
p[j]=p[j+1];
}
size--;
cout<<" New contents : "<<endl;
display();
}

int main()
{
vector<float> hasib;
int s;
cout<<" enter size of vector : ";
cin>>s;
hasib.creat_vector(s);
cout<<" enter "<<s<<" elements  one by one :"<<endl;
for(int i=0;i<s;i++)
{
float v;
cin>>v;
hasib.set_element(i,v);
}
cout<<" Now contents  :"<<endl;
hasib.display();
cout<<" to multiply this vector by a scalar quantity enter this scalar quantity : ";
float m;
cin>>m;
hasib.multiply(m);
cout<<" Now contents : "<<endl;
hasib.display();
hasib.modify();
return 0;
}```

## OUTPUT

enter size of vector : 4

enter 4 elements one by one :

4    3    2    5

Now contents :

p[4] = ( 4 , 3 , 2 , 5)

to multiply this vector by a scalar quantity enter this scalar quantity : 3

Now contents :

p[4] = ( 12 , 9 , 6 , 15)

to edit a given element enter position of the element : 2

Now enter new value of 2th element : 222

Now new contents :

p[4] = ( 12 , 222 , 6 , 15)

to delete an element enter position of the element :3

New contents :

p[3] = ( 12 , 222 , 15)