Масиви є однією з найпростіших і, можливо, найбільш використовуваною формою структурованого зберігання даних при обробці інформації в комп’ютерних програмах. Основна їх перевага — можливість дуже швидкого доступу до елемента за його порядковому номеру (індексу). Створити масив в мові C + + можна кількома способами.
Вам знадобиться
— текстовий редактор;
- Компілятор С + +.
Інструкція
- Створіть масив фіксованого розміру. Його декларація має містити тип значень, ідентифікатор змінної і специфікацію розмірності з зазначенням кількостей елементів. Наприклад, одновимірний масив цілих значень, що складається з десяти елементів, можна визначити так:
int aNumbers [10];
Подібним чином можна створювати і багатовимірні масиви:
int aNumbers [3] [4];
Для ініціалізації подібних змінних можна використовувати літерали масивів:
int aNumbers_1 [10] = {1, 2, 3};int aNumbers_2 [3] [3] =
{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
Зверніть увагу на те, що кількість елементів літеральних масивів-ініціалізаторів може бути менше ніж у ініціалізіруемих їм змінних. У цьому випадку частини елементів масиву-приймача просто не будуть присвоєні значення.
- Створіть масив, обсяг якого визначається ініціалізувалися літералів. Декларуйте масив, не спеціфіціруя його розмір. Масиви, визначені подібним чином, обов'язково повинні бути ініціалізовані:
int aNumbers [] = {1, 2, 3};
Таким же чином можна створювати багатовимірні масиви. Однак «змінним» допускається робити тільки одне, перший вимір:
int aNumbers [] [3] =
{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
{0, 1, 2}
};
Даним способом дуже зручно визначати статичні константні масиви. Їх обсяг може бути обчислений на етапі компіляції з використанням ключового слова sizeof.
- Створіть масив в динамічно розподіляє пам'яті. Визначте покажчик на значення типу елемента масиву. Виділіть пам'ять під необхідну кількість даних. Дайте вказівником значення адреси першого байта виділеного блоку. Використовуйте функції розподілу пам'яті бібліотеки C (calloc, malloc), оператор new C + + або платформ-специфічні функції (такі як VirtualAlloc, VirtualAllocEx в Windows). Наприклад:
int * paNumbers_0 = (int *) malloc (sizeof (int) * 10);
int * paNumbers_1 = new int (10);paNumbers_0 [1] = 0xFF; / / доступ до елемента
paNumbers_1 [2] = 0xFF; / / доступ до елемента
Після закінчення використання створених таким чином масивів, необхідно звільнити виділену пам'ять:
free (paNumbers_0);
delete [] paNumbers_1;
- Створіть об'єкт класу, що реалізує функціонал масиву. Подібні класи або шаблони класів містяться в багатьох популярних фреймворку і бібліотеках. Так, у стандартній бібліотеці шаблонів C + + (STL) є контейнер std :: vector. Створити і використовувати масив на його основі можна наступним чином:
std :: vectoroVector; / / декларація об'єкта масиву oVector.resize (10); / / зміна розміру масиву
oVector [0] = 1; / / доступ до елемента
oVector.push_back (0xFF); / / додавання елемента в кінець
Зверніть увагу на те, що через автоматичного управління пам'яттю і наявності зручних методів модифікації (зміна розміру, додавання елементів, і т.д.), використання подібних класів часто буває більш доцільним, ніж застосування масивів в стилі C.