Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. using namespace std;
  2.  
  3. class Vector {
  4. private:
  5. int * data;
  6. size_t vect_size;
  7. size_t capacity;
  8. public:
  9. Vector() {
  10. data = new int[0];
  11. vect_size = 0;
  12. capacity = 0;
  13. };
  14. Vector(const Vector& input) {
  15. vect_size = input.vect_size;
  16. capacity = input.capacity;
  17. data = new int[vect_size];
  18. for (size_t i = 0; i < vect_size; ++i) {
  19. data[i] = input.data[i];
  20. }
  21. }
  22. Vector& operator=(const Vector& input) {
  23. vect_size = input.vect_size;
  24. capacity = input.capacity;
  25. delete [] data;
  26. data = new int[vect_size];
  27. for (size_t i = 0; i < vect_size; ++i) {
  28. data[i] = input.data[i];
  29. }
  30. return *this;
  31. }
  32. ~Vector() {
  33. delete [] data;
  34. }
  35. size_t size() {
  36. return vect_size;
  37. }
  38. int operator[](size_t i) {
  39. return data[i];
  40. }
  41. void push_back(int elem) {
  42. if (vect_size == capacity) {
  43. int * tmp = new int[vect_size];
  44. if (vect_size) {
  45. for (size_t i = 0; i < vect_size; ++i) {
  46. tmp[i] = data[i];
  47. }
  48. delete [] data;
  49. }
  50. if (!capacity) {
  51. capacity = 1;
  52. }
  53. capacity *= 2;
  54. data = new int[capacity];
  55. for (size_t i = 0; i < vect_size; ++i) {
  56. data[i] = tmp[i];
  57. }
  58. if (vect_size) {
  59. delete [] tmp;
  60. }
  61. }
  62. data[vect_size] = elem;
  63. ++vect_size;
  64. }
  65. void pop_back() {
  66. --vect_size;
  67. }
  68. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement