Як створити масив


 

Масиви є однією з найпростіших і, можливо, найбільш використовуваною формою структурованого зберігання даних при обробці інформації в комп’ютерних програмах. Основна їх перевага — можливість дуже швидкого доступу до елемента за його порядковому номеру (індексу). Створити масив в мові C + + можна кількома способами.



Вам знадобиться

— текстовий редактор;
- Компілятор С + +.

Інструкція

  1. Створіть масив фіксованого розміру. Його декларація має містити тип значень, ідентифікатор змінної і специфікацію розмірності з зазначенням кількостей елементів. Наприклад, одновимірний масив цілих значень, що складається з десяти елементів, можна визначити так:

    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}
    };

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


  2. Створіть масив, обсяг якого визначається ініціалізувалися літералів. Декларуйте масив, не спеціфіціруя його розмір. Масиви, визначені подібним чином, обов'язково повинні бути ініціалізовані:

    int aNumbers [] = {1, 2, 3};

    Таким же чином можна створювати багатовимірні масиви. Однак «змінним» допускається робити тільки одне, перший вимір:

    int aNumbers [] [3] =
    {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9},
    {0, 1, 2}
    };

    Даним способом дуже зручно визначати статичні константні масиви. Їх обсяг може бути обчислений на етапі компіляції з використанням ключового слова sizeof.
        


  3. Створіть масив в динамічно розподіляє пам'яті. Визначте покажчик на значення типу елемента масиву. Виділіть пам'ять під необхідну кількість даних. Дайте вказівником значення адреси першого байта виділеного блоку. Використовуйте функції розподілу пам'яті бібліотеки 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;

  4. Створіть об'єкт класу, що реалізує функціонал масиву. Подібні класи або шаблони класів містяться в багатьох популярних фреймворку і бібліотеках. Так, у стандартній бібліотеці шаблонів C + + (STL) є контейнер std :: vector. Створити і використовувати масив на його основі можна наступним чином:

    std :: vector oVector; / / декларація об'єкта масиву

    oVector.resize (10); / / зміна розміру масиву
    oVector [0] = 1; / / доступ до елемента
    oVector.push_back (0xFF); / / додавання елемента в кінець

    Зверніть увагу на те, що через автоматичного управління пам'яттю і наявності зручних методів модифікації (зміна розміру, додавання елементів, і т.д.), використання подібних класів часто буває більш доцільним, ніж застосування масивів в стилі C.