Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Take the simple vector project found in the class repository. 1) Test the vector to make sure it works. 2) Add the following functions to

Take the simple vector project found in the class repository.

1) Test the vector to make sure it works.

2) Add the following functions to the class,

push_back, pop_back

push_front, pop_front

The functions should add or delete from the front or back. The array will need to be resized and copied.

3) Test your new functions to make sure they work

----------------------------------------------------------------------------------------------------------------------------

Simple Vector Project

[SimpleVector.h]

// SimpleVector class template #ifndef SIMPLEVECTOR_H #define SIMPLEVECTOR_H #include #include // Needed for bad_alloc exception #include // Needed for the exit function using namespace std;

template class SimpleVector { private: T *aptr; // To point to the allocated array int arraySize; // Number of elements in the array void memError(); // Handles memory allocation errors void subError(); // Handles subscripts out of range

public: // Default constructor SimpleVector() { aptr = 0; arraySize = 0;} // Constructor declaration SimpleVector(int); // Copy constructor declaration SimpleVector(const SimpleVector &); // Destructor declaration ~SimpleVector(); // Accessor to return the array size int size() const { return arraySize; }

// Accessor to return a specific element T getElementAt(int position);

// Overloaded [] operator declaration T &operator[](const int &); };

//*********************************************************** // Constructor for SimpleVector class. Sets the size of the * // array and allocates memory for it. * //***********************************************************

template SimpleVector::SimpleVector(int s) { arraySize = s; // Allocate memory for the array. try { aptr = new T [s]; } catch (bad_alloc) { memError(); }

// Initialize the array. for (int count = 0; count < arraySize; count++) *(aptr + count) = 0; }

//******************************************* // Copy Constructor for SimpleVector class. * //*******************************************

template SimpleVector::SimpleVector(const SimpleVector &obj) { // Copy the array size. arraySize = obj.arraySize; // Allocate memory for the array. aptr = new T [arraySize]; if (aptr == 0) memError(); // Copy the elements of obj's array. for(int count = 0; count < arraySize; count++) *(aptr + count) = *(obj.aptr + count); }

//************************************** // Destructor for SimpleVector class. * //**************************************

template SimpleVector::~SimpleVector() { if (arraySize > 0) delete [] aptr; }

//******************************************************* // memError function. Displays an error message and * // terminates the program when memory allocation fails. * //*******************************************************

template void SimpleVector::memError() { cout << "ERROR:Cannot allocate memory. "; exit(EXIT_FAILURE); }

//*********************************************************** // subError function. Displays an error message and * // terminates the program when a subscript is out of range. * //***********************************************************

template void SimpleVector::subError() { cout << "ERROR: Subscript out of range. "; exit(EXIT_FAILURE); }

//******************************************************* // getElementAt function. The argument is a subscript. * // This function returns the value stored at the sub- * // cript in the array. * //*******************************************************

template T SimpleVector::getElementAt(int sub) { if (sub < 0 || sub >= arraySize) subError(); return aptr[sub]; }

//******************************************************* // Overloaded [] operator. The argument is a subscript. * // This function returns a reference to the element * // in the array indexed by the subscript. * //*******************************************************

template T &SimpleVector::operator[](const int &sub) { if (sub < 0 || sub >= arraySize) subError(); return aptr[sub]; } #endif

---

[main.cpp]

//System Libraries #include using namespace std;

//User Libraries #include "SimpleVector.h"

//Global Constants

//Function prototypes void fillVec(SimpleVector &); void prntVec(SimpleVector &,int);

//Execution Begins Here int main(int argc, char** argv) { //Declare Variables unsigned int size=200; SimpleVector sv(size); //Fill the Vector fillVec(sv); //Print the Vector prntVec(sv,10); //Copy the Vector SimpleVector copysv(sv); //Print the Vector prntVec(copysv,10);

return 0; }

void prntVec(SimpleVector &sv,int perLine){ cout< for(int i=0;i cout< if(i%perLine==(perLine-1))cout< } cout< }

void fillVec(SimpleVector &sv){ for(int i=0;i sv[i]=rand()%26+65; } }

-----------------------------------------------------

Please show the whole code. Thank you

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

The Accidental Data Scientist

Authors: Amy Affelt

1st Edition

1573877077, 9781573877077

More Books

Students also viewed these Databases questions

Question

css3 handson - morphing div

Answered: 1 week ago

Question

Q.1. what is constitution? Q.2. key of the constitution?

Answered: 1 week ago

Question

Q.1. what is meant by federal system?

Answered: 1 week ago