Як створити динамічний масив
категорія Faq
Пойменований набір однотипних елементів називають масивом. Подібна організація даних має масу очевидних переваг і один недолік - при створенні масиву необхідно заздалегідь оголошувати його розмір, який в подальшому неможливо змінити звичайними засобами. Вирішення цієї проблеми полягає в розробці динамічних масивів, здатних в будь-який момент змінювати кількість своїх елементів. Причому для цього можна скористатися як вже створеними класами, так і реалізувати власні за допомогою стандартних засобів мови програмування.
1
Основна суть динамічного масиву полягає у виділенні пам`яті під зберігаються в ньому дані саме в тому розмірі, в якому це необхідно на даний момент. Найзручніше дану конструкцію реалізувати у вигляді класу - оболонки для масиву. Тут необхідно передбачити всі функції, які виконують виділення і звільнення пам`яті під масив, а також оператори, що забезпечують доступ до його елементів.
2
Створіть об`єкт класу-оболонки динамічного масиву, при цьому конструктор автоматично виділить пам`ять зазначеного розміру. Якщо в міру заповнення масиву пам`ять під елементи буде зайнята повністю, при додаванні чергових даних проводяться наступні дії: - вся інформація з масиву зберігається у тимчасовому сховищі (допоміжний масив) - раніше виділена пам`ять звільняється спеціальної командою (free, delete) - виділяється пам`ять під масив того розміру, який потрібно для вміщення всіх данних-- в новий масив з тимчасового сховища поміщаються всі "старі" значення і додається новий елемент.
3
Найбільш оптимальним варіантом роботи з динамічними масивами є використання вже існуючих бібліотечних класів. Одним з найбільш поширених прикладів можна назвати клас vector. У нього включені всі необхідні для функціонування змінюваного масиву функції і ітератори. Причому бібліотечний модуль, що містить даний клас, поставляється з будь-якою версією компілятора мови С ++.
4
Підключіть бібліотеку динамічного масиву за допомогою команди #include. Для створення об`єкта використовуйте клас vector. Переміщення по масиву відбувається так само, як і в звичайному випадку, за допомогою індексів. Особливими тут є функції додавання і видалення нових елементів, а також ряд допоміжних методов.Прімер коду створення і роботи динамічного масиву vector: #include vector-vector int Mass - // оголошення динамічного масиву з елементами типу intMas.push_back (10) - // додавання першого елемента - числа 10 Mas.push_back (15) - // додавання другого елементу - числа 15Mas [1] = 30- // в другій елемент записується число 30Mas.pop_back () - // видалення останнього елемента масиву Тут при створенні динамічного масиву з ім`ям Mass обов`язково вказується тип його елементів (int), розмір ність в даному випадку не задається.