Перейти до основного вмісту
Модуль 5 · Урок 1 із 211/18 у курсі~12 min
Модульні уроки (1/2)

Масиви та вектори

У C++ керування колекціями даних переважно здійснюється за допомогою двох інструментів: масивів старого стилю (масивів у стилі C) і векторів (std::vector). Розуміння різниці між статичною та динамічною пам’яттю є фундаментальним для написання ефективного коду.


1. Статичні масиви (масиви в стилі C)

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

C++
int grades[5] = {18, 22, 25, 28, 30}; // Array of 5 integers

Ключові характеристики:

  • Фіксований розмір: ви не можете додавати або видаляти елементи під час виконання.
  • Розподіл стека: дуже швидко розподіляти та звільняти.
  • Доступ: виконується через оператор індексу [] (наприклад, grades[0] для першого елемента).

2. Динамічні вектори (std::vector)

Стандартна бібліотека шаблонів C++ (STL) надає клас std::vector, який представляє динамічний масив. Щоб використовувати його, ви повинні включити заголовок <vector>:

C++
#include <vector>

std::vector<int> numbers; // Creates an empty vector of integers

Загальні операції:

  • Додавання до кінця: метод .push_back(value) вставляє елемент у кінець вектора, автоматично перерозподіляючи пам’ять, якщо потрібно.
  • Size: метод .size() повертає кількість елементів у векторі.
  • Безпечний доступ: на додаток до оператора [] ви можете використовувати метод .at(index) (наприклад, numbers.at(0)), який створює виняток, якщо індекс виходить за межі.
C++
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3

Спробуйте самі

вправи#cpp.m5.l1.e1
Спроби: 0Завантаження…

Оголошіть std::vector цілих чисел з іменами чисел. Додайте в нього значення 10, 20 і 30 за допомогою методу .push_back(), а потім надрукуйте його розмір за допомогою numbers.size().

Завантаження редактора…
Показати підказку

Оголошіть вектор за допомогою `std::vector<int> numbers;`, вставте три числа за допомогою `.push_back(value)`і надрукуйте його за допомогою`std::cout << numbers.size();`.

Рішення доступне після 3 спроб

вправи#cpp.m5.l1.e2
Спроби: 0Завантаження…

В основному визначено масив оцінок із 5 елементів. Напишіть цикл for, щоб обчислити суму всіх елементів у масиві, зберегти її в змінній sum і надрукувати за допомогою std::cout.

Завантаження редактора…
Показати підказку

Використовуйте цикл for (int i = 0; i < 5; ++i) і підсумовуйте кожен елемент у циклі за допомогою sum += grades[i];`.

Рішення доступне після 3 спроб

Quiz#cpp.m5.l1.q1
Готовий

Який правильний метод додавання елемента в кінець std::vector у C++?

C++
std::vector<int> numbers; // come aggiungere il valore 50?
Варіанти відповідей