Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct Person
- {
- string name;
- string room;
- };
- class myvector
- {
- private:
- int vsize;
- int maxsize;
- Person* array;
- void alloc_new();
- public:
- myvector();
- myvector(Person);
- myvector(const myvector&); //copy constructor
- ~myvector();
- void push_back(Person);
- int size();
- int operator [] (Person);
- int at(int i);
- };
- myvector::myvector()
- {
- maxsize = 20;
- array = new Person[maxsize];
- vsize = 0;
- }
- myvector::myvector(int i)
- {
- maxsize = i;
- array = new Person[maxsize];
- vsize = 0;
- }
- myvector::myvector(const myvector& v)
- {
- maxsize = v.maxsize;
- vsize = v.vsize;
- array = new Person(maxsize);
- for(int i = 0; i < v.vsize ; i++)
- {
- array[i] = v.array[i];
- }
- }
- myvector::~myvector()
- {
- delete[] array;
- }
- void myvector::push_back(Person i)
- {
- if(vsize + 1 > maxsize)
- {
- alloc_new();
- }
- array[vsize] = i;
- vsize++;
- }
- int myvector::operator[] (int i)
- {
- return array[i];
- }
- int myvector::at(int i)
- {
- if(i < vsize)
- {
- return array[i];
- }
- }
- int myvector::size()
- {
- return vsize;
- }
- void myvector::alloc_new()
- {
- maxsize = vsize*2;
- Person *tmp = new Person[maxsize];
- for(int i = 0; i < vsize; i++)
- {
- tmp[i] = array[i];
- }
- delete[] array;
- array = tmp;
- }
- int main()
- {
- string name;
- string room;
- myvector vec;
- Person tmp;
- while(1)
- {
- cin >> tmp;
- //if (tmp == -1)
- {
- break;
- }
- vec.push_back(tmp);
- }
- cout << "you have entered" << vec.size() << "elements. These are: \n";
- for(int i = 0; i < vec.size(); i++)
- {
- //cout << vec[i] << " ";
- }
- cout << "\n";
- return 0;
- }
Add Comment
Please, Sign In to add comment