Advertisement
Ifrail

Less9 Task1

Jan 23rd, 2020
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.41 KB | None | 0 0
  1. /*Объекты и указатели - 1*/
  2.  
  3. /*
  4.     Создайте класс SimpleVector, который хранит целые числа и выводит их на консоль. При реализации используйте динамическую память и не забудьте ее очистить.
  5. Дополнительно, конструктор должен вывести "memory allocate", а деструктор - "memory clear"
  6. */
  7.  
  8. #include <iostream>
  9. #include <string>
  10.  
  11. using namespace std;
  12.  
  13. class SimpleVector {
  14.     int* _data;
  15.     int _len;
  16.  
  17. public:
  18.     SimpleVector(int len) {
  19.         _len = len;
  20.         _data = new int[_len];
  21.     }
  22.  
  23.     ~SimpleVector() {
  24.         if (_len != 0) {
  25.             delete[] _data;
  26.             _len = 0;
  27.             cout << "memory clear" << endl;
  28.         }
  29.     }
  30.  
  31.     void set(int idx, int val) {
  32.         _data[idx] = val;
  33.     }
  34.  
  35.     void print() {
  36.         cout << _data[0];
  37.         for (int i = 1; i < _len; i++) {
  38.             cout << " " << _data[i];
  39.         }
  40.         cout << endl;
  41.     }
  42. };
  43.  
  44. /*В преамбулу*/
  45. int main() {
  46.     int len;
  47.     cin >> len;
  48.     SimpleVector sv(len);
  49.     for (int i = 0; i < len; i++) {
  50.         int x;
  51.         cin >> x;
  52.         sv.set(i, x);
  53.     }
  54.     sv.print();
  55. }
  56.  
  57. /*
  58. Тест 1
  59. Ввод:
  60. 12
  61. 5 8 9 4 6 1 1 0 8 8 1 7
  62. Вывод:
  63. memory allocate
  64. 5 8 9 4 6 1 1 0 8 8 1 7
  65. 0 8 9 4 6 1 1 0 8 8 1 7
  66. memory clear
  67.  
  68. Тест 2
  69. Ввод:
  70. 7
  71. 7 7 7 0 0 0 9
  72. Вывод:
  73. memory allocate
  74. 7 7 7 0 0 0 9
  75. 0 7 7 0 0 0 9
  76. memory clear
  77. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement