Что такое STL?
Стандартная библиотека шаблонов (STL) предоставляет универсальные контейнеры и алгоритмы. Основные компоненты: контейнеры, итераторы и алгоритмы.
vector — динамический массив
#include <vector>
using namespace std;
vector<int> v = {3, 1, 4, 1, 5};
v.push_back(9); // добавить в конец
v.pop_back(); // удалить с конца
cout << v[0]; // 3
cout << v.size(); // 5
for (auto x : v) cout << x << " ";
map — словарь
#include <map>
map<string, int> scores;
scores["Алиса"] = 95;
scores["Боб"] = 87;
cout << scores["Алиса"]; // 95
scores.erase("Боб");
for (auto& [key, val] : scores) { // C++17
cout << key << ": " << val << "
";
}
set — уникальные отсортированные элементы
#include <set>
set<int> s = {5, 2, 8, 2, 1};
// s содержит: {1, 2, 5, 8} — отсортировано, без дубликатов
s.insert(3);
s.erase(2);
Сортировка и алгоритмы
#include <algorithm>
vector<int> v = {5, 2, 8, 1, 9};
sort(v.begin(), v.end()); // по возрастанию
sort(v.begin(), v.end(), greater<int>()); // по убыванию
int mx = *max_element(v.begin(), v.end()); // максимум
int cnt = count(v.begin(), v.end(), 1); // количество вхождений
unordered_map — хэш-карта O(1)
#include <unordered_map>
unordered_map<string, int> freq;
string word;
while (cin >> word) freq[word]++;
// O(1) в среднем, в отличие от O(log n) у map