Assignment 3 C++
Assignment 3 C++
Exercise 1:
The errors are underlined
#include <iostream>
template < class T>
using namespace std; //this is missing
void print(T left, T right)
{
cout <<”Printing arguments: “ << left <<” ** “ << right;
}
int main()
{
cout << endl;
print(3, 5.8) ; //this gives an error since the function print
needs two parameters OF THE SAME TYPE (3 IS SEEN AS AN INT)
cout<< endl ;
return 0 ;
}
The corrected code is:
#include <iostream>
#include "myVector.h"
#include <iostream>
template <class T>
MyVector<T>::MyVector(){
capacity=1;
arr=new T[1];
currentElement=0;
}
template <class T>
void MyVector<T>::push(T data){
if(currentElement+1==capacity){
int size=capacity;
T* temp=arr;
capacity*=2;
arr=new T[capacity];
for(int i=0;i<size;i++)
arr[i]=temp[i];
delete[] temp;
}
arr[currentElement]=data;
currentElement++;
}
template <class T>
T MyVector<T>::get(int index){
if(index>currentElement)
return -1000000000000; //we dont have such index
else
return *(arr+index);
}
template <class T>
int MyVector<T>::size(){
return currentElement;
}
template <class T>
void MyVector<T>::push(T data,int index){
if(index<0)
return;
if(currentElement+1==capacity){
int size=capacity;
T* temp=arr;
capacity*=2;
arr=new T[capacity];
for(int i=0;i<size;i++)
arr[i]=temp[i];
delete[] temp;
}
for (int i = currentElement; i > index; i--) {
arr[i] = arr[i - 1];
}
*(arr+index)=data;
currentElement++;
}
template <class T>
void MyVector<T>::print(){
for(int i=0;i<currentElement;i++)
std::cout<<*(arr+i)<<" ";
std::cout<<std::endl;
}
int main(){
MyVector<int> v;
v.push(2);
v.push(3);
v.push(10,0);
v.print();
MyVector<char> v1;
v1.push('c');
std::cout<<v1.getCapacity();
v1.push('d');
std::cout<<v1.size()<<","<<v1.getCapacity();
}