Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Programming C++: In this assignment, we will use pointers to implement our own vector class. It will have the following features: Dynamically allocated array of

Programming C++:

In this assignment, we will use pointers to implement our own vector class. It will have the following features:

Dynamically allocated array of integers.

Size variable that keeps track of the number of elements in the array. Starts at 0.

Capacity variable that keeps track of the amount of memory allocated for the array. Starts at capacity 1.

Each time the size reaches the capacity, double the capacity

Several of the features available from the STL vector (insert, erase, push back, etc)

You will submit 3 files:

MyVector.h

MyVector.cpp

main.cpp

The code for the header file is as follows. It contains specifications and hints:

#ifndef MYVECTOR_H_INCLUDED #define MYVECTOR_H_INCLUDED class MyVector { public: /*Default constructor. Initialize size to 0, capacity to 1, and a to a new int array of size 1.*/ MyVector(); /*Return the array element at a given index*/ int at(int); /*Print all elements of the array*/ void printElements(); /*Return the number of elements*/ int getSize(); /*Return the allocated capacity of the array*/ int getCapacity(); /*Insert an element at a given index. The first parameter is the index, the second is the value to insert. if index == size, call pushBack. else if index > size || index < 0, output "Invalid index." else increase the size by 1, reallocate if size > capacity Create a loop that starts at the end of the array and decrements. Copy each element upward to make space for the new element. end the loop when you reach the insert index. when the loop is finished, assign value to the element at index*/ void insert(int, int); /*Erase an element at a given index. if index >= size || index < 0, output "Invalid index." else create a loop that starts at index and increments. copy each element downward until you reach size - 1. decrement the size and return.*/ void erase(int); /*Increment the size. If size > capacity, reallocate. assign the value to the end of the array.*/ void pushBack(int); private: /*Double the capacity. Since your capacity starts at 1, it will take on the values 1,2,4,8,16,... allocate a temp int array of size capacity to do this, assign "new int[capacity]" to your pointer copy a's values into temp with a loop deallocate a. To do this, use delete[] a. This prevents a memory leak. assign a to temp.*/ void reallocate(); int size; int capacity; int *a; }; #endif // MYVECTOR_H_INCLUDED 

Below are some sample outputs:

3 pushbacks:

Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 1 Enter the number to push back: 1 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 1 Enter the number to push back: 2 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 1 Enter the number to push back: 3 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 4 Contents: 1 2 3 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 7 

3 pushbacks and 3 inserts:

Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 1 Enter the number to push back: 1 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 1 Enter the number to push back: 3 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 1 Enter the number to push back: 5 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 2 Enter the number to insert: 2 Enter the index: 1 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 2 Enter the number to insert: 4 Enter the index: 3 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 4 Contents: 1 2 3 4 5 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 7 

5 pushbacks and 3 erases:

Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 1 Enter the number to push back: 1 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 1 Enter the number to push back: 2 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 1 Enter the number to push back: 3 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 1 Enter the number to push back: 4 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 1 Enter the number to push back: 5 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 3 Enter the index of the element to be removed: 2 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 3 Enter the index of the element to be removed: 3 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 3 Enter the index of the element to be removed: 0 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 4 Contents: 2 4 Choose from the following menu: 1) Push back 2) Insert 3) Erase 4) Print 5) Size 6) Capacity 7) Exit. 

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

Database Driven Web Sites

Authors: Mike Morrison, Joline Morrison

1st Edition

061901556X, 978-0619015565

More Books

Students also viewed these Databases questions

Question

Explain walter's model of dividend policy.

Answered: 1 week ago

Question

What is Change Control and how does it operate?

Answered: 1 week ago

Question

How do Data Requirements relate to Functional Requirements?

Answered: 1 week ago