Пойменований набір однотипних елементів називають масивом. Подібна організація даних має масу очевидних переваг і один недолік — при створенні масиву необхідно заздалегідь оголошувати його розмір, який в подальшому неможливо змінити звичайними засобами. Вирішення цієї проблеми полягає в розробці динамічних масивів, здатних у будь-який момент змінювати кількість своїх елементів. Причому для цього можна скористатися як вже створеними класами, так і реалізувати власні за допомогою стандартних засобів мови програмування.
Основна суть динамічного масиву полягає у виділенні пам’яті під зберігаються в ньому дані саме в тому розмірі, в якому це необхідно на даний момент. Найзручніше дану конструкцію реалізувати у вигляді класу — оболонки для масиву. Тут необхідно передбачити всі функції, які виконують виділення і звільнення пам’яті під масив, а також оператори, що забезпечують доступ до її елементів.
Основна суть динамічного масиву полягає у виділенні пам’яті під зберігаються в ньому дані саме в тому розмірі, в якому це необхідно на даний момент. Найзручніше дану конструкцію реалізувати у вигляді класу — оболонки для масиву. Тут необхідно передбачити всі функції, які виконують виділення і звільнення пам’яті під масив, а також оператори, що забезпечують доступ до її елементів.
Створіть об’єкт класу-оболонки динамічного масиву, при цьому конструктор автоматично виділить пам’ять зазначеного розміру. Якщо в міру заповнення масиву пам’ять під елементи буде зайнята повністю, при додаванні чергових даних проводяться наступні дії:
— вся інформація з масиву зберігається у тимчасовому сховищі (допоміжний масив);
- Раніше виділена пам’ять звільняється спеціальної командою (free, delete);
- Виділяється пам’ять під масив того розміру, який потрібно для вміщення всіх даних;
- В новий масив з тимчасового сховища поміщаються всі «старі» значення і додається новий елемент.
Найбільш оптимальним варіантом роботи з динамічними масивами є використання вже існуючих бібліотечних класів. Одним з найпоширеніших прикладів можна назвати клас vector. У нього включені всі необхідні для функціонування змінюваного масиву функції і ітератори. Причому бібліотечний модуль, що містить даний клас, поставляється з будь-якою версією компілятора мови С + +.- Раніше виділена пам’ять звільняється спеціальної командою (free, delete);
- Виділяється пам’ять під масив того розміру, який потрібно для вміщення всіх даних;
- В новий масив з тимчасового сховища поміщаються всі «старі» значення і додається новий елемент.
Підключіть бібліотеку динамічного масиву за допомогою команди # 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), розмірність в даному випадку не задається.
0 коментарі:
Дописати коментар