Стандартная библиотека шаблонов (STL)
Готовые контейнеры и алгоритмы, чтобы не изобретать велосипед
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()).
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
Обрати внимание: мы нигде не задавали размер вектора — он сам вырос, когда мы добавляли элементы.