Данные · Контейнеры и алгоритмы

std::vector

Главный контейнер C++: динамический массив, который сам управляет памятью

~30 мин 8 шагов

После урока ты сможешь

  • Создавать, заполнять и обходить vector
  • Обращаться к элементам безопасно и понимать, чем опасен выход за границы
  • Передавать vector в функции без копирования

Шаг 1 из 8

Когда переменных не хватает

Нужно сохранить оценки 30 учеников. Тридцать переменных score1, score2, … — плохая идея: их не обойдёшь циклом, а если учеников станет 31, придётся переписывать код.

Нужен контейнер: одна переменная, которая хранит сколько угодно значений одного типа. Главный контейнер C++ — std::vector, динамический массив. Если не знаешь, какой контейнер выбрать, бери vector: так советует и создатель языка Бьярне Страуструп.

main.cpp
#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 умеет печатать вектор целиком.