Справочник по C/C++
Стандартная библиотека шаблонов C++

Значительную часть библиотеки классов C++ составляет стандартная библиотека шаблонов(Standard Template Library — STL). Библиотека STL предоставляет шаблонные классы и функции общего назначения, которые реализуют многие популярные и часто используемые алгоритмы и структуры данных. Например, она включает поддержку векторов, списков, очередей и стеков, а также определяет различные процедуры, обеспечивающие доступ к этим объектам. Поскольку библиотека STL состоит из шаблонных классов, алгоритмы и структуры данных могут быть применены к данным практически любого типа.

STL — это большая библиотека, и поэтому не все ее возможности полностью рассмотрены в настоящей книге. Кроме того, описанная здесь версия библиотеки STL определена стандартом ANSI/ISO C++. Более старые компиляторы могут представлять версию STL, которая несколько отличается от стандартной.


Смотрите также

Обзор STL
Примеры использования STL

Контейнерные классы

bitset - Битовое множество
deque - Дек
list - Линейный список
map - Отображение
multimap - Мультиотображение
multiset - Множество
priority_queue - Приоритетная очередь
queue - Очередь
set - Множество
stack - Стек
vector - Динамический массив

Алгоритмы библиотеки STL

adjacent_find - Выполняет поиск совпадающих смежных элементов внутри последовательности
binary_search - Выполняет двоичный поиск значения внутри упорядоченной последовательности
copy_backward - Аналогично copy(), за исключением того, что копирование происходит в обратном порядке
count - Возвращает количество элементов с определённым значением в последовательности
count_if - Возвращает количество элементов для которых заданный предикат возвращает значение true
equal - Определяет, одинаковы ли два диапазона
equal_range - Возвращает диапазон, в который можно вставить элемент, не нарушая порядок некоторой последовательности
fill - Заполняет диапазон заданным значением
fill_n - Заполняет диапазон заданным значением
find - Выполняет поиск значения в заданном диапазоне
find_end - Выполняет поиск последнего итератора последовательности внутри диапазона
find_first_of - Выполняет поиск первого элемента внутри последовательности
find_if - Выполняет поиск элемента, для которого унарный предикат возвращает значение true
for_each - Применяет функцию к диапазону элементов
generate - Присваивает значения, возвращаемые некоторой генерирующей функцией, элементам из диапазона
generate_n - Присваивает значения, возвращаемые некоторой генерирующей функцией, элементам из диапазона
includes - Устанавливает факт включения всех элементов последовательности
inplace_merge - Объединяет два диапазона
iter_swap - Меняет местами значения
lexicographical_compare - Сравнивает последовательности
lower_bound - Выполняет поиск первого элемента в последовательности
make_heap - Создает кучу из последовательности
max - Возвращает максимальное из двух значений
max_element - Возвращает итератор для максимального элемента внутри диапазона
merge - Объединяет две упорядоченные последовательности, помещая результат в третью последовательность
min - Возвращает минимальное из двух значений
min_element - Возвращает итератор для минимального элемента внутри диапазона
mismatch - Выполняет поиск первого несовпадения элементов в двух последовательностях
next_permutation - Создает перестановку заданной последовательности
сору - Копирует последовательность и помещает результат в другую последовательность
nth_element - Упорядочивает последовательность так, чтобы слева были элементы меньше заданного, а справа - больше
partial_sort - Сортирует диапазон
partial_sort_copy - Сортирует заданный диапазон, а затем копирует столько элементов, столько может поместиться в результирующую последовательность
partition - Сортирует последовательность таким образом, чтобы сначала шли элементы, для которых предикат возвращает значение true затем false
pop_heap - Меняет местами заданные элементы, а затем перестраивает кучу, используя диапазон, определяемый этими элементами
prev_permutation - Создает предыдущую перестановку последовательности
push_heap - Помещает элемент в конец кучи
random_shuffle - Рандомизирует последовательность
remove - Удаляет из заданного диапазона элементы, которые равны заданному значению
remove_copy - Копирует из заданного диапазона элементы, которые равны заданному значению и помещает результат в другую последовательность
remove_copy_if - Копирует из заданного диапазона элементы, для которых заданный предикат равен значению true, и помещает результат в заданную последовательность
remove_if - Удаляет из заданного диапазона элементы, для которых заданный предикат равен значению true
replace - Внутри заданного диапазона заменяет элементы, которые имеют заданное значение
replace_copy - Внутри заданного диапазона копирует элементы в заданную последовательность
replace_copy_if - Внутри заданного диапазона копирует элементы в последовательность. В процессе копирования происходит замена элементов, для которых заданный предикат равен заданному значению
replace_if - Внутри заданного диапазона заменяет элементы, для которых заданный предикат равен значению true
reverse - Меняет порядок следования элементов в диапазоне
reverse_copy - Копирует в обратном порядке диапазон и сохраняет результат в последовательности
rotate - Выполняет циклический сдвиг влево элементов в диапазоне
rotate_copy - Копирует элементы в диапазоне в последовательность. В процессе копирования выполняется циклический сдвиг влево
search - Выполняет поиск одной последовательности внутри другой
search_n - Внутри некоторой последовательности выполняет поиск другой последовательности
set_difference - Создает последовательность, которая содержит разность между двумя упорядоченными множествами
set_intersection - Создает последовательность, которая содержит пересечение двух упорядоченных множеств
set_symmetric_difference - Создает последовательность, которая содержит симметричную разность между двумя упорядоченными множествами
set_union - Создает последовательность, которая содержит объединение двух упорядоченных
sort - Сортирует диапазон
sort_heap - Сортирует кучу внутри диапазона
stable_partition - Упорядочивает последовательность, таким образом, что все элементы, для которых заданный предикат возвращает значение true, будут размещаться перед элементами, для которых этот предикат возвращает значение false
stable_sort - Выполняет устойчивую сортировку диапазона
swap - Меняет местами значения
swap_ranges - Выполняет обмен элементов в диапазоне
transform - Применяет функцию к диапазону элементов и сохраняет результат в последовательности
unique - Удаляет повторяющиеся элементы из заданного диапазона
unique_copy - Копирует диапазон в новую последовательность, удаляя в процессе копирования повторяющиеся элементы
upper_bound - Находит последний элемент в последовательности, который не больше заданного значения