Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- //#include <vector> //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: Run the test code using the stl vector class. Make sure you understand the output
- // and how the vector class works.
- //Part 2: 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.
- //template < class T>
- int main()
- {
- vector<int> myvecA; //ERROR OCCURS HERE
- vector<int> myvecB(10); //ERROR OCCURS HERE
- //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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement