#include //#include using namespace std; class Vec { public: Vec() { sz = 0; cap = 1; p_arr = new int[cap]; } int size() { return this->sz; } int capacity() { return this->cap; } void reserve( int n ) { // TODO: // (0) check the n should be > size, otherwise // ignore this action. if ( n > sz )
#include <iostream>
//#include <
using namespace std;
class Vec
{
public:
Vec()
{
sz = 0;
cap = 1;
p_arr = new int[cap];
}
int size()
{
return this->sz;
}
int capacity()
{
return this->cap;
}
void reserve( int n )
{
// TODO:
// (0) check the n should be > size, otherwise
// ignore this action.
if ( n > sz )
{
// (1) create a new int array which size is n
// and get its address
//cout << "Adress:"<< &n << endl;
int *newarr = new int [n];
//cout << "Address: " << newarr << endl; // location
// (2) use for loop to copy the old array to the
// new array
for(int i = 0; i < sz; i++)
{
newarr[i] = p_arr[i];
}
// (3) update the variable to the new address
this->cap=n;
// (4) delete old array
delete[] newarr;
}
}
void push_back( int v )
{
// TODO:
if ( sz == cap )
{
cap *= 2;
reserve(cap);
}
p_arr[sz++] = v;
// complete others
}
int at(int idx)
{
return this->p_arr[idx];
}
private:
//vector<int> arr;
int *p_arr;
int sz = 0;
int cap = 0;
};
int main()
{
Vec v;
v.reserve(10);
v.push_back(3);
v.push_back(2);
cout << v.size() << endl; // 2
cout << v.capacity() << endl; // 10
v.push_back(3);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(3);
v.push_back(7);
v.push_back(3);
v.push_back(8);
v.push_back(2);
cout << v.size() << endl; // 11
cout << v.capacity() << endl; // 20
for ( int i = 0; i < v.size(); i++ )
{
cout << v.at(i) << endl;
}
return 0;
}
![](/static/compass_v2/shared-icons/check-mark.png)
Step by step
Solved in 3 steps with 1 images
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![C How to Program (8th Edition)](https://www.bartleby.com/isbn_cover_images/9780133976892/9780133976892_smallCoverImage.gif)
![Database Systems: Design, Implementation, & Manag…](https://www.bartleby.com/isbn_cover_images/9781337627900/9781337627900_smallCoverImage.gif)
![Programmable Logic Controllers](https://www.bartleby.com/isbn_cover_images/9780073373843/9780073373843_smallCoverImage.gif)