СПРАВОЧНИК
C++ STL
Контейнеры, алгоритмы, строки
Алфавитный справочник по стандартной библиотеке шаблонов C++ (STL). Здесь собраны самые востребованные методы строк, контейнеров (vector, map, set и др.), алгоритмы из <algorithm> и утилиты. Каждая запись содержит сигнатуру, краткое описание и рабочий пример с указанием результата.
Алгоритмы (algorithm) 16
std::accumulate()
T std::accumulate(first, last, init)Суммирует элементы диапазона (из <numeric>).std::binary_search()
bool std::binary_search(first, last, value)Проверяет наличие значения в отсортированном диапазоне.std::copy()
iterator std::copy(first, last, dest)Копирует элементы диапазона в место назначения.std::count()
int std::count(first, last, value)Считает, сколько раз значение встречается в диапазоне.std::fill()
std::fill(first, last, value)Заполняет диапазон одним значением.std::find()
iterator std::find(first, last, value)Ищет значение в диапазоне, возвращает итератор.std::for_each()
std::for_each(first, last, func)Вызывает функцию для каждого элемента диапазона.std::lower_bound()
iterator std::lower_bound(first, last, value)Первый элемент >= value в отсортированном диапазоне.std::max_element()
iterator std::max_element(first, last)Возвращает итератор на максимальный элемент диапазона.std::min_element()
iterator std::min_element(first, last)Возвращает итератор на минимальный элемент диапазона.std::next_permutation()
bool std::next_permutation(first, last)Переставляет диапазон в следующую перестановку.std::reverse()
std::reverse(first, last)Меняет порядок элементов диапазона на обратный.std::sort()
std::sort(first, last, comp = less)Сортирует диапазон по возрастанию или по компаратору.std::transform()
iterator std::transform(first, last, dest, op)Применяет функцию к каждому элементу и пишет результат.std::unique()
iterator std::unique(first, last)Удаляет подряд идущие дубликаты, возвращает новый конец.std::upper_bound()
iterator std::upper_bound(first, last, value)Первый элемент > value в отсортированном диапазоне.Вектор (vector) 14
std::vector::at()
T& v.at(index)Доступ к элементу по индексу с проверкой границ.std::vector::back()
T& v.back()Возвращает ссылку на последний элемент.std::vector::begin()
iterator v.begin()Итератор на первый элемент вектора.std::vector::clear()
void v.clear()Удаляет все элементы, делая вектор пустым.std::vector::empty()
bool v.empty()Проверяет, пуст ли вектор.std::vector::end()
iterator v.end()Итератор на позицию ЗА последним элементом.std::vector::erase()
iterator v.erase(pos)Удаляет элемент по итератору (или диапазон).std::vector::front()
T& v.front()Возвращает ссылку на первый элемент.std::vector::insert()
iterator v.insert(pos, value)Вставляет элемент перед итератором pos.std::vector::pop_back()
void v.pop_back()Удаляет последний элемент вектора.std::vector::push_back()
void v.push_back(value)Добавляет элемент в конец вектора.std::vector::reserve()
void v.reserve(n)Резервирует ёмкость под n элементов заранее.std::vector::resize()
void v.resize(n, value = T())Меняет размер вектора до n элементов.std::vector::size()
size_t v.size()Возвращает количество элементов в векторе.Итераторы 2
Контейнеры (обзор) 10
std::deque
std::deque<T>Двусторонняя очередь: вставка с обоих концов за O(1).std::list
std::list<T>Двусвязный список: вставка/удаление за O(1) по итератору.std::map
std::map<Key, Value>Упорядоченный словарь ключ-значение на красно-чёрном дереве.std::pair
std::pair<T1, T2>Пара из двух значений: .first и .second.std::priority_queue
std::priority_queue<T>Очередь с приоритетом (по умолчанию max-куча).std::queue
std::queue<T>Очередь FIFO: push, pop, front, back.std::set
std::set<T>Упорядоченное множество уникальных элементов.std::stack
std::stack<T>Стек LIFO: push, pop, top.std::unordered_map
std::unordered_map<Key, Value>Хеш-таблица ключ-значение со средним доступом O(1).std::unordered_set
std::unordered_set<T>Хеш-множество уникальных элементов со средним O(1).Строки (string) 15
std::getline()
istream& std::getline(in, str, delim = '\n')Читает строку из потока целиком, до разделителя.std::stod()
double std::stod(str, pos = nullptr)Преобразует строку в число с плавающей точкой double.std::stoi()
int std::stoi(str, pos = nullptr, base = 10)Преобразует строку в целое число int.std::string::append()
string& s.append(str)Добавляет строку в конец; аналог оператора +=.std::string::compare()
int s.compare(str)Лексикографически сравнивает строки: 0, <0 или >0.std::string::c_str()
const char* s.c_str()Возвращает C-строку (указатель на массив с '\0' в конце).std::string::erase()
string& s.erase(pos, len)Удаляет len символов начиная с позиции pos.std::string::find()
size_t s.find(str, pos = 0)Ищет подстроку и возвращает её позицию или string::npos.std::string::insert()
string& s.insert(pos, str)Вставляет строку в позицию pos, сдвигая остаток вправо.std::string::length()
size_t s.length()Возвращает длину строки; синоним size().std::string::push_back()
void s.push_back(ch)Добавляет один символ в конец строки.std::string::replace()
string& s.replace(pos, len, str)Заменяет часть строки [pos, pos+len) на другую строку.std::string::size()
size_t s.size()Возвращает количество символов (байт) в строке.std::string::substr()
string s.substr(pos, len)Возвращает подстроку, начиная с позиции pos длиной len.std::to_string()
string std::to_string(value)Преобразует число в строку.Утилиты 8
std::abs()
T std::abs(x)Модуль (абсолютное значение) числа.std::make_pair()
pair<T1, T2> std::make_pair(a, b)Создаёт std::pair с автоматическим выводом типов.std::max()
const T& std::max(a, b)Возвращает большее из двух значений.std::min()
const T& std::min(a, b)Возвращает меньшее из двух значений.std::pow()
double std::pow(base, exp)Возводит base в степень exp (из <cmath>).std::sqrt()
double std::sqrt(x)Квадратный корень числа (из <cmath>).std::swap()
void std::swap(a, b)Меняет местами значения двух переменных.std::tuple
std::tuple<T1, T2, ...>Кортеж из произвольного числа значений.