Guest User

Untitled

a guest
Oct 22nd, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct Person
  6. {
  7. string name;
  8. string room;
  9. };
  10.  
  11. class myvector
  12. {
  13. private:
  14. int vsize;
  15. int maxsize;
  16. Person* array;
  17. void alloc_new();
  18. public:
  19. myvector();
  20. myvector(Person);
  21. myvector(const myvector&); //copy constructor
  22. ~myvector();
  23. void push_back(Person);
  24. int size();
  25. int operator [] (Person);
  26. int at(int i);
  27.  
  28. };
  29.  
  30. myvector::myvector()
  31. {
  32. maxsize = 20;
  33. array = new Person[maxsize];
  34. vsize = 0;
  35. }
  36. myvector::myvector(int i)
  37. {
  38. maxsize = i;
  39. array = new Person[maxsize];
  40. vsize = 0;
  41. }
  42.  
  43. myvector::myvector(const myvector& v)
  44. {
  45. maxsize = v.maxsize;
  46. vsize = v.vsize;
  47. array = new Person(maxsize);
  48. for(int i = 0; i < v.vsize ; i++)
  49. {
  50. array[i] = v.array[i];
  51. }
  52. }
  53.  
  54. myvector::~myvector()
  55. {
  56. delete[] array;
  57. }
  58.  
  59. void myvector::push_back(Person i)
  60. {
  61. if(vsize + 1 > maxsize)
  62. {
  63. alloc_new();
  64. }
  65. array[vsize] = i;
  66. vsize++;
  67. }
  68.  
  69. int myvector::operator[] (int i)
  70. {
  71. return array[i];
  72. }
  73.  
  74. int myvector::at(int i)
  75. {
  76. if(i < vsize)
  77. {
  78. return array[i];
  79. }
  80. }
  81.  
  82. int myvector::size()
  83. {
  84. return vsize;
  85. }
  86.  
  87. void myvector::alloc_new()
  88. {
  89. maxsize = vsize*2;
  90. Person *tmp = new Person[maxsize];
  91. for(int i = 0; i < vsize; i++)
  92. {
  93. tmp[i] = array[i];
  94. }
  95. delete[] array;
  96. array = tmp;
  97. }
  98.  
  99.  
  100. int main()
  101. {
  102. string name;
  103. string room;
  104. myvector vec;
  105. Person tmp;
  106. while(1)
  107. {
  108. cin >> tmp;
  109. //if (tmp == -1)
  110. {
  111. break;
  112. }
  113. vec.push_back(tmp);
  114. }
  115. cout << "you have entered" << vec.size() << "elements. These are: \n";
  116. for(int i = 0; i < vec.size(); i++)
  117. {
  118. //cout << vec[i] << " ";
  119. }
  120. cout << "\n";
  121. return 0;
  122. }
Add Comment
Please, Sign In to add comment