Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

#include <iostream> #include <string> //replace this with your own class when re

ID: 672193 • Letter: #

Question

#include <iostream>
#include <string>       //replace this with your own class when ready
#include "myVector.h"   //include this instead of the stl vector class when ready
using namespace std;

.
//Part 1: Create your own vector class (in the file "myVector.h"). To test your vector class,
//           Swap the #include statements above so that the test code uses your vector class instead of the stl vector class.
//       
//           YOU MAY NOT CHANGE ANY PART OF THE TEST CODE other than swapping the included files.
//         Your vector class must yield the exact same results from the test code as the stl vector class,
//         with the following exceptions: The "capacity" method may return different values (ie, you may choose any resizing method you want,
//           but you should consider what is the smartest approach with respect to efficiency). Additionally, for the 0-parameter constructor and
//           the 1-parameter, you do not need to initialize the values of the vector items (but you must for the 2-parameter constructor).
//         Beyond these items, your code must behave the same as for the stl vector.

int main()
{
   vector<int> myvecA;
   vector<int> myvecB(10);
   vector<int> myvecC(5, -9);
   vector<string> myvecD(6, "Are we there yet?");

   //The size method should return how many items, abstractly,
   //the vector currently holds.
   cout << "Vector A size: " << myvecA.size() << endl;
   cout << "Vector B size: " << myvecB.size() << endl;
   cout << "Vector C size: " << myvecC.size() << endl;
   cout << "Vector D size: " << myvecD.size() << endl;

   //Capacity should report how large the array holding the items is.
   //This size will be at least that of 'size()', but could be larger.
   cout << "Vector A capacity: " << myvecA.capacity() << endl;
   cout << "Vector B capacity: " << myvecB.capacity() << endl;
   cout << "Vector C capacity: " << myvecC.capacity() << endl;
   cout << "Vector D capacity: " << myvecD.capacity() << endl;

   //You can access the items in the array
   //with the '[]' operator.
   cout << endl;
   cout << "Vector B: " << endl;
   myvecB[3] = 43;
   myvecB[7] = 17;
   for (int i = 0; i<myvecB.size(); i++)
       cout << myvecB[i] << endl;

   cout << endl;
   cout << "Vector C: " << endl;
   myvecC[2] = 50;
   for (int i = 0; i<myvecC.size(); i++)
       cout << myvecC[i] << endl;

   cout << endl;
   cout << "Vector D: " << endl;
   myvecD[5] = "Shut up kids.";
   for (int i = 0; i<myvecD.size(); i++)
       cout << myvecD[i] << endl;


   //An important ability of vectors is the ability to push items to the back
   //of the vector, which may require increasing the capacity behind the scenes.
   for (int i = 0; i<16; i++)
       myvecA.push_back(2380 + i);
   cout << endl;
   cout << "Vector A's size and capacity:" << endl;
   cout << "Vector A size: " << myvecA.size() << endl;
   cout << "Vector A capacity: " << myvecA.capacity() << endl;


   //vector's also have full stack functionality. Consider the "pop_back" method:
   for (int i = 0; i<10; i++)
   {
       cout << "About to pop: " << myvecA.back() << endl;
       myvecA.pop_back();
   }

   cout << endl;
   cout << "Vector A's size and capacity:" << endl;
   cout << "Vector A size: " << myvecA.size() << endl;
   cout << "Vector A capacity: " << myvecA.capacity() << endl;

   //Here is some addtional demo of the [] operator and how it works,
   //as well as the "push_back" method.
   cout << endl;
   for (int i = 0; i<5; i++)
       myvecB[i] = i * 10;

   myvecB.push_back(9990);
   myvecB.push_back(9991);
   myvecB.push_back(9992);
   myvecB.push_back(9993);
   myvecB.push_back(9994);

   for (int i = 0; i<myvecB.size(); i++)
       cout << myvecB[i] << endl;


   //Now we will see, for a large example, how the vector adjusts its capacity:
   cout << endl;
   int max = 100;
   for (int i = 0; i<max; i++)
   {
       int x = i * 10000;
       myvecB.push_back(x);
       cout << "Pushing: " << x << ", size: " << myvecB.size() << ", capacity: " << myvecB.capacity() << endl;
   }

   return 0;
}

HELP! i have to create a header file to run this program cant change anything in the main though.

Explanation / Answer

int main()
{
   vector<int> myvecA;
   vector<int> myvecB(10);
   vector<int> myvecC(5, -9);
   vector<string> myvecD(6, "Are we there yet?");

   //The size method should return how many items, abstractly,
   //the vector currently holds.
   cout << "Vector A size: " << myvecA.size() << endl;
   cout << "Vector B size: " << myvecB.size() << endl;
   cout << "Vector C size: " << myvecC.size() << endl;
   cout << "Vector D size: " << myvecD.size() << endl;

   //Capacity should report how large the array holding the items is.
   //This size will be at least that of 'size()', but could be larger.
   cout << "Vector A capacity: " << myvecA.capacity() << endl;
   cout << "Vector B capacity: " << myvecB.capacity() << endl;
   cout << "Vector C capacity: " << myvecC.capacity() << endl;
   cout << "Vector D capacity: " << myvecD.capacity() << endl;

   //You can access the items in the array
   //with the '[]' operator.
   cout << endl;
   cout << "Vector B: " << endl;
   myvecB[3] = 43;
   myvecB[7] = 17;
   for (int i = 0; i<myvecB.size(); i++)
       cout << myvecB[i] << endl;

   cout << endl;
   cout << "Vector C: " << endl;
   myvecC[2] = 50;
   for (int i = 0; i<myvecC.size(); i++)
       cout << myvecC[i] << endl;

   cout << endl;
   cout << "Vector D: " << endl;
   myvecD[5] = "Shut up kids.";
   for (int i = 0; i<myvecD.size(); i++)
       cout << myvecD[i] << endl;


   //An important ability of vectors is the ability to push items to the back
   //of the vector, which may require increasing the capacity behind the scenes.
   for (int i = 0; i<16; i++)
       myvecA.push_back(2380 + i);
   cout << endl;
   cout << "Vector A's size and capacity:" << endl;
   cout << "Vector A size: " << myvecA.size() << endl;
   cout << "Vector A capacity: " << myvecA.capacity() << endl;


   //vector's also have full stack functionality. Consider the "pop_back" method:
   for (int i = 0; i<10; i++)
   {
       cout << "About to pop: " << myvecA.back() << endl;
       myvecA.pop_back();
   }

   cout << endl;
   cout << "Vector A's size and capacity:" << endl;
   cout << "Vector A size: " << myvecA.size() << endl;
   cout << "Vector A capacity: " << myvecA.capacity() << endl;

   //Here is some addtional demo of the [] operator and how it works,
   //as well as the "push_back" method.
   cout << endl;
   for (int i = 0; i<5; i++)
       myvecB[i] = i * 10;

   myvecB.push_back(9990);
   myvecB.push_back(9991);
   myvecB.push_back(9992);
   myvecB.push_back(9993);
   myvecB.push_back(9994);

   for (int i = 0; i<myvecB.size(); i++)
       cout << myvecB[i] << endl;


   //Now we will see, for a large example, how the vector adjusts its capacity:
   cout << endl;
   int max = 100;
   for (int i = 0; i<max; i++)
   {
       int x = i * 10000;
       myvecB.push_back(x);
       cout << "Pushing: " << x << ", size: " << myvecB.size() << ", capacity: " << myvecB.capacity() << endl;
   }

   return 0;