Поделиться через


Класс list

Класс списка STL — это класс шаблона контейнеров последовательностей, содержащих элементы в линейном порядке и позволяющие вставлять и удалять элементы в любом месте в пределах этих последовательностей. Последовательность сохраняется в виде двунаправленного связанного списка элементов, каждый из которых содержит член какого-либо типа Type.

template <    class Type,     class Allocator=allocator<Type>  > class list

Параметры

  • Type
    Тип данных элементов, сохраняемых в списке.

  • Allocator
    Тип, представляющий сохраненный объект распределителя, содержащий сведения о распределении списка и отмене распределения памяти. Этот аргумент необязателен. Значение по умолчанию — allocator<Type>.

Заметки

Выбор типа контейнера должен в общем случае производиться на основе типа поиска и вставки, который требуется приложению. Векторы должны быть предпочитаемыми контейнерами для управления последовательностями, когда важен произвольный доступ к любому элементу, а вставка и удаление элементов требуется лишь в конце последовательности. Производительность контейнера класса двусторонней очереди выше, когда требуется произвольный доступ, а также вставка и удаление элементов и в начале последовательности, и в ее конце.

Функции-члены списка merge, reverse, unique, remove и remove_if оптимизированы для объектов-списков и представляют собой быстродействующие альтернативы своим универсальным аналогам.

Перераспределение списка происходит, когда функция-член должна вставить или удалить элементы списка. Во всех таких случаях только итераторы или ссылки, указывающие на удаленные части последовательности, становятся недействительными .

Добавьте стандартный заголовок STL <list>, чтобы определить список классов шаблонов контейнеров и некоторые вспомогательные шаблоны.

Конструкторы

list

Создает список определенного размера, или с элементами определенного значения, или с определенным allocator, или в качестве копии какого-либо другого списка.

Определения типов

allocator_type

Тип, представляющий класс allocator для объекта списка.

const_iterator

Тип, предоставляющий двунаправленный итератор, который может читать элемент const в списке.

const_pointer

Тип, предоставляющий указатель на элемент const в списке.

const_reference

Тип, предоставляющий ссылку на элемент const, хранящийся в списке, для чтения и выполнения операций const.

const_reverse_iterator

Тип, предоставляющий двунаправленный итератор, который может читать любой элемент const в списке.

difference_type

Тип, предоставляющий разницу между двумя итераторами, ссылающимися на элементы в одном и том же списке.

iterator

Тип, предоставляющий двунаправленный итератор, который может читать или изменять любой элемент в списке.

pointer

Тип, предоставляющий указатель на элемент в списке.

reference

Тип, предоставляющий ссылку на элемент const, хранящийся в списке, для чтения и выполнения операций const.

reverse_iterator

Тип, предоставляющий двунаправленный итератор, который может читать или изменять любой элемент в обратном списке.

size_type

Тип, считающий количество элементов в списке.

value_type

Тип, представляющий тип данных, хранящихся в списке.

Функции-члены

assign

Удаляет элементы из списка и копирует новый набор элементов в список назначения.

back

Возвращает ссылку на последний элемент в списке.

begin

Возвращает итератор, адресующий первый элемент в списке.

list::cbegin

Возвращает константный итератор, адресующий первый элемент в списке.

list::cend

Возвращает константный итератор, адресующий расположение после последнего элемента в списке.

list::clear

Удаляет все элементы списка.

list::crbegin

Возвращает константный итератор, адресующий первый элемент в обратном списке.

list::crend

Возвращает константный итератор, адресующий расположение после последнего элемента в обратном списке.

list::emplace

Вставляет элемент, созданный на месте, в указанное положение в списке.

list::emplace_back

Добавляет элемент, созданный на месте, в конец списка.

list::emplace_front

Добавляет элемент, созданный на месте, в начало списка.

empty

Проверяет, пуст ли список.

end

Возвращает итератор, адресующий расположение после последнего элемента в списке.

erase

Удаляет элемент или диапазон элементов с указанных положений в списке.

front

Возвращает ссылку на первый элемент в списке.

get_allocator

Возвращает копию объекта объекта allocator, использованного для создания списка.

insert

Вставляет элемент или количество элементов или диапазон элементов в указанное положение в списке.

max_size

Возвращает максимальную длину списка.

merge

Удаляет элементы из списка аргументов, вставляет их в список назначения и сортирует новый объединенный набор элементов по возрастанию или в ином указанном порядке.

pop_back

Удаляет элемент в конце списка.

pop_front

Удаляет элемент в начале списка.

push_back

Добавляет элемент в конец списка.

push_front

Добавляет элемент в начало списка.

rbegin

Возвращает итератор, адресующий первый элемент в обратном списке.

remove

Удаляет из списка элементы, совпадающие с заданным значением.

remove_if

Удаляет из списка элементы, для которых выполняется заданное условие.

rend

Возвращает итератор, адресующий расположение после последнего элемента в обратном списке.

resize

Указывает новый размер списка.

reverse

Изменяет порядок следования элементов в списке на обратный.

size

Возвращает количество элементов в списке.

sort

Упорядочивает элементы списка по возрастанию или в другом порядке.

splice

Удаляет элементы из списка аргументов и вставляет их в список назначения.

swap

Меняет местами элементы двух списков.

unique

Удаляет из списка повторяющиеся соседние элементы или соседние элементы, удовлетворяющие условию какого-либо другого двоичного предиката.

Операторы

list::operator=

Заменяет элементы списка копией другого списка.

Требования

Заголовок: <list>

См. также

Ссылки

<list>

Потокобезопасность в стандартной библиотеке C++

Библиотека стандартных шаблонов