Модульні уроки (1/2)
Масиви та вектори
У C++ керування колекціями даних переважно здійснюється за допомогою двох інструментів: масивів старого стилю (масивів у стилі C) і векторів (std::vector). Розуміння різниці між статичною та динамічною пам’яттю є фундаментальним для написання ефективного коду.
1. Статичні масиви (масиви в стилі C)
Масив — це набір елементів одного типу, що зберігаються в безперервних місцях пам’яті. Розмір статичного масиву має бути відомий під час компіляції та не може бути змінений пізніше:
int grades[5] = {18, 22, 25, 28, 30}; // Array of 5 integersКлючові характеристики:
- Фіксований розмір: ви не можете додавати або видаляти елементи під час виконання.
- Розподіл стека: дуже швидко розподіляти та звільняти.
- Доступ: виконується через оператор індексу
[](наприклад,grades[0]для першого елемента).
2. Динамічні вектори (std::vector)
Стандартна бібліотека шаблонів C++ (STL) надає клас std::vector, який представляє динамічний масив. Щоб використовувати його, ви повинні включити заголовок <vector>:
#include <vector>
std::vector<int> numbers; // Creates an empty vector of integersЗагальні операції:
- Додавання до кінця: метод
.push_back(value)вставляє елемент у кінець вектора, автоматично перерозподіляючи пам’ять, якщо потрібно. - Size: метод
.size()повертає кількість елементів у векторі. - Безпечний доступ: на додаток до оператора
[]ви можете використовувати метод.at(index)(наприклад,numbers.at(0)), який створює виняток, якщо індекс виходить за межі.
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3Спробуйте самі
Оголошіть std::vector цілих чисел з іменами чисел. Додайте в нього значення 10, 20 і 30 за допомогою методу .push_back(), а потім надрукуйте його розмір за допомогою numbers.size().
Показати підказку
Оголошіть вектор за допомогою `std::vector<int> numbers;`, вставте три числа за допомогою `.push_back(value)`і надрукуйте його за допомогою`std::cout << numbers.size();`.
Рішення доступне після 3 спроб
В основному визначено масив оцінок із 5 елементів. Напишіть цикл for, щоб обчислити суму всіх елементів у масиві, зберегти її в змінній sum і надрукувати за допомогою std::cout.
Показати підказку
Використовуйте цикл for (int i = 0; i < 5; ++i) і підсумовуйте кожен елемент у циклі за допомогою sum += grades[i];`.
Рішення доступне після 3 спроб
Який правильний метод додавання елемента в кінець std::vector у C++?
std::vector<int> numbers; // come aggiungere il valore 50?