Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. #pragma once
  4. class Vector
  5. {
  6. public:
  7. Vector() {
  8. data = new int[1];
  9. size = 0;
  10. capacity = 1;
  11. std::cout << "creating obj\n";
  12. }
  13. Vector(int _size) {
  14. if (_size <= 0)
  15. throw "size must be more than 0\n";
  16. capacity = _size;
  17. data = new int[capacity];
  18. size = 0;
  19.  
  20.  
  21. }
  22. int getSize() {
  23.  
  24. return size;
  25. }
  26. Vector(int source[], int _size) {
  27. capacity = _size;
  28. size = _size;
  29. data = new int[capacity];
  30. for (int i = 0; i < capacity; ++i)
  31. data[i] = source[i];
  32.  
  33. }
  34. void push_back(int val) {
  35. if (size < capacity)
  36. {
  37. data[size++] = val;
  38. return;
  39. }
  40. int* dmp = new int[capacity];
  41. for (int i = 0; i < capacity; ++i)
  42. dmp[i] = data[i];
  43. dmp[size++] = val;
  44. delete[] data;
  45. data = dmp;
  46. }
  47. int pop_back() {
  48. if (size == 0)
  49. throw"exeption";
  50. return data[size--];
  51.  
  52.  
  53.  
  54. }
  55. int& getElemAt(int index) {
  56. if ((index < 0) || (index > size - 1))
  57. throw"exp";
  58. return data[index];
  59.  
  60. }
  61. // коструктор по умолчанию
  62. ~Vector() {
  63. std::cout << "EXTERMINATE\n";
  64. delete[] data;
  65. }
  66.  
  67.  
  68. void print() {
  69. for (int i = 0; i < size; ++i)
  70. std::cout << data[i] << " \n";
  71. std::cout << std::endl;
  72.  
  73.  
  74. }
  75. private:
  76. int*data;
  77. int size;
  78. int capacity;
  79.  
  80.  
  81. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement