Як створити динамічний масив


 

пойменований набір однотипних елементів називають масивом. Подібна організація даних має масу очевидних переваг і один недолік — при створенні масиву необхідно заздалегідь оголошувати його розмір, який в подальшому неможливо змінити звичайними засобами. Вирішення цієї проблеми полягає в розробці динамічних масивів, здатних у будь-який момент змінювати кількість своїх елементів. Причому для цього можна скористатися як вже створеними класами, так і реалізувати власні за допомогою стандартних засобів мови програмування.


Інструкція

  1. Основна суть динамічного масиву полягає у виділенні пам’яті під зберігаються в ньому дані саме в тому розмірі, в якому це необхідно на даний момент. Найзручніше дану конструкцію реалізувати у вигляді класу — оболонки для масиву. Тут необхідно передбачити всі функції, які виконують виділення і звільнення пам’яті під масив, а також оператори, що забезпечують доступ до її елементів.
  2. Створіть об’єкт класу-оболонки динамічного масиву, при цьому конструктор автоматично виділить пам’ять зазначеного розміру. Якщо в міру заповнення масиву пам’ять під елементи буде зайнята повністю, при додаванні чергових даних проводяться наступні дії:

    — вся інформація з масиву зберігається у тимчасовому сховищі (допоміжний масив);
    - Раніше виділена пам’ять звільняється спеціальної командою (free, delete);
    - Виділяється пам’ять під масив того розміру, який потрібно для вміщення всіх даних;
    - В новий масив з тимчасового сховища поміщаються всі «старі» значення і додається новий елемент.

  3. Найбільш оптимальним варіантом роботи з динамічними масивами є використання вже існуючих бібліотечних класів. Одним з найпоширеніших прикладів можна назвати клас vector. У нього включені всі необхідні для функціонування змінюваного масиву функції і ітератори. Причому бібліотечний модуль, що містить даний клас, поставляється з будь-якою версією компілятора мови С + +.
  4. Підключіть бібліотеку динамічного масиву за допомогою команди # include. Для створення об’єкта використовуйте клас vector. Переміщення по масиву відбувається так само, як і в звичайному випадку, за допомогою індексів. Особливими тут є функції додавання та видалення нових елементів, а також ряд допоміжних методів.

    Приклад коду створення та роботи динамічного масиву vector:


    # Include vector;
    vector int Mass; / / оголошення динамічного масиву з елементами типу int
    Mas.push_back (10); / / додавання першого елемента - числа 10
    Mas.push_back (15); / / додавання другого елементу - числа 15
    Mas [1] = 30; / / в другій елемент записується число 30
    Mas.pop_back (); / / видалення останнього елемента масиву

    Тут при створенні динамічного масиву з ім’ям Mass обов’язково вказується тип його елементів (int), розмірність в даному випадку не задається.