std::vector
Главный контейнер C++: динамический массив, который сам управляет памятью
После урока ты сможешь
- Создавать, заполнять и обходить vector
- Обращаться к элементам безопасно и понимать, чем опасен выход за границы
- Передавать vector в функции без копирования
Шаг 1 из 8
Когда переменных не хватает
Нужно сохранить оценки 30 учеников. Тридцать переменных score1, score2, … — плохая идея: их не обойдёшь циклом, а если учеников станет 31, придётся переписывать код.
Нужен контейнер: одна переменная, которая хранит сколько угодно значений одного типа. Главный контейнер C++ — std::vector, динамический массив. Если не знаешь, какой контейнер выбрать, бери vector: так советует и создатель языка Бьярне Страуструп.
#include <print>
#include <vector>
int main() {
std::vector<int> scores{90, 75, 100, 60};
scores.push_back(85);
std::println("Оценок: {}", scores.size());
std::println("Все: {}", scores);
}
std::vector<int> — «вектор целых». В угловых скобках указан тип элементов. push_back добавляет элемент в конец, size() возвращает количество. А std::println в C++23 умеет печатать вектор целиком.