Перейти к содержанию

Стандартная библиотека шаблонов (STL)

Программирование C++ Сложность 1/5

Начало урока

Стандартная библиотека шаблонов (STL)

Готовые контейнеры и алгоритмы, чтобы не изобретать велосипед

Главная идея: STL — это огромный набор инструментов, который уже встроен в C++. Вместо того чтобы писать свой список, словарь или сортировку с нуля, ты используешь готовые контейнеры вроде std::vector и std::map и алгоритмы вроде std::sort — проверенные, быстрые и готовые к работе.
К концу урока ты сможешь:
  • хранить растущий список значений в std::vector,
  • искать данные по ключу с помощью std::map,
  • использовать готовые алгоритмы вроде sort, find и count,
  • проходить по любому контейнеру с помощью удобного range-based for.

1. Что такое STL?

Стандартная библиотека шаблонов — это набор готовых инструментов, встроенных в C++. Ты получаешь их бесплатно — нужно лишь подключить нужный заголовок через #include. В ней три главных вида инструментов:

  • Контейнеры — объекты, которые хранят твои данные (например, vector и map).
  • Алгоритмы — готовые операции над данными (например, sort, find, count).
  • Итераторы — «указатели», которые связывают алгоритмы с контейнерами (ты увидишь .begin() и .end()).
Представь STL как кухню, полную техники. Ты мог бы всё резать вручную, но зачем, если рядом уже есть блендер?

2. std::vector — растущий список

У обычного массива в C++ фиксированный размер. std::vector — это умный массив, который может расти и уменьшаться, пока программа работает. Ты добавляешь элементы через push_back, узнаёшь их количество через size() и читаешь любой элемент в квадратных скобках [i] (нумерация с 0).

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> scores;      // an empty, resizable list of ints
    scores.push_back(90);    // add items to the end
    scores.push_back(75);
    scores.push_back(88);

    cout << "We have " << scores.size() << " scores\n";
    cout << "First score: " << scores[0] << "\n";
    return 0;
}

Вывод:

We have 3 scores
First score: 90

Обрати внимание: мы нигде не задавали размер вектора — он сам вырос, когда мы добавляли элементы.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя