Библиотека C ++ - <список>
Введение
Список - это широко используемый контейнер последовательностей. Контейнер - это объект, содержащий данные одного типа. Контейнер списка реализован как двусвязный список, поэтому он обеспечивает двунаправленный последовательный доступ к своим данным.
Список не обеспечивает быстрый произвольный доступ, он поддерживает только последовательный доступ в обоих направлениях. Список позволяет выполнять операции вставки и удаления в любом месте последовательности в постоянное время.
Элементы списка могут быть разбросаны по разным частям памяти. Контейнер хранит необходимую информацию, чтобы обеспечить последовательный доступ к своим данным. Списки могут сжиматься или расширяться по мере необходимости с обоих концов во время выполнения. Требования к хранилищу автоматически выполняются внутренним распределителем.
Списки нулевого размера также действительны. В этом случае list.begin () и list.end () указывают на одно и то же место. Но поведение вызова front () или back () не определено.
Определение
Ниже приведено определение std :: list из заголовочного файла <list>.
template < class T, class Alloc = allocator<T> > class list;
Параметры
T - Тип содержащегося элемента.
T может быть заменен любым другим типом данных, включая тип, определенный пользователем.
Alloc - Тип объекта распределителя.
По умолчанию используется шаблон класса распределителя, который определяет простейшую модель распределения памяти и не зависит от значения.
Типы участников
Следующие типы членов могут использоваться как параметры или возвращаемый тип функциями-членами.
Sr. No. | Типы участников | Определение |
---|---|---|
1 | тип ценности | T (Первый параметр шаблона) |
2 | allocator_type | Alloc (Второй параметр шаблона) |
3 | Справка | тип ценности& |
4 | const_reference | const value_type & |
5 | указатель | тип ценности* |
6 | const_pointer | const value_type * |
7 | итератор | итератор произвольного доступа к value_type |
8 | const_iterator | итератор произвольного доступа к const value_type |
9 | reverse_iterator | std :: reverse_iterator <итератор> |
10 | const_reverse_iterator | std :: reverse_iterator <const_iterator> |
11 | size_type | size_t |
12 | разница_тип | ptrdiff_t |
Функции из <list>
Ниже приведен список всех методов из заголовка <list>.
Конструкторы
Sr. No. | Метод и описание |
---|---|
1 | list :: list
конструктор по умолчанию Создает пустой список с нулевыми элементами. |
2 | list :: list fill конструктор
Создает новый список из n элементов и присваивает значение val каждому элементу списка. |
3 | list :: list fill конструктор
Создает новый список из n элементов и присваивает нулевое значение каждому элементу списка. |
4 | list :: list range конструктор
Создает список с таким количеством элементов, как в диапазоне от первого до последнего . |
5 | list :: list конструктор копирования
Создает список с копией каждого элемента, присутствующего в существующем списке. |
6 | list :: list конструктор перемещения
Создает список с содержимым other, используя семантику перемещения. |
7 | list :: list конструктор списка инициализатора Создает список с содержимым other, используя семантику перемещения. |
Деструктор
Sr. No. | Метод и описание |
---|---|
1 | список :: ~ список
Уничтожает объект списка, освобождая его память. |
Функции-члены
Sr. No. | Метод и описание |
---|---|
1 | list :: assign range version Присваивает новое значение списку, заменяя старые. |
2 | list :: назначить версию заполнения Назначает новые значения списку, заменяя старые. |
3 | list :: assign инициализатор версии списка Назначает новые значения списку, заменяя старые. |
4 | list :: back
Возвращает ссылку на последний элемент списка. |
5 | list :: begin
Возвращает итератор произвольного доступа, который указывает на первый элемент списка. |
6 | list :: cbegin
Возвращает постоянный итератор произвольного доступа, который указывает на начало списка. |
7 | list :: cend
Возвращает постоянный итератор произвольного доступа, указывающий на конец списка. |
8 | list :: clear
Уничтожает список, удаляя все элементы из списка, и устанавливает размер списка равным нулю. |
9 | list :: crbegin
Возвращает постоянный обратный итератор, указывающий на последний элемент списка. |
10 | list :: crend
Возвращает постоянный обратный итератор, который указывает на теоретический элемент, предшествующий первому элементу в списке. |
11 | list :: emplace
Расширяет список, вставляя новый элемент в заданную позицию. |
12 | list :: emplace_back
Вставляет новый элемент в конец списка и увеличивает размер списка на единицу. |
13 | list :: emplace_front
Вставляет новый элемент в начало списка и увеличивает размер списка на единицу. |
14 | list :: empty
Проверяет, пуст список или нет. |
15 | list :: end
Возвращает итератор произвольного доступа, который указывает на последний элемент списка. |
16 | list :: удалить версию позиции Удаляет отдельный элемент из списка. |
17 | list :: erase range version Удаляет диапазон элемента из списка. |
18 | list :: front
Возвращает ссылку на первый элемент списка. |
19 | список :: get_allocator
Возвращает распределитель, связанный со списком |
20 | list :: insert одноэлементная версия Расширяет итератор, вставляя новый элемент в позицию в списке. |
21 год | list :: вставить версию заполнения Расширяет список, вставляя новые элементы в контейнер. |
22 | list :: insert range version Расширяет список, вставляя новые элементы в контейнер. |
23 | list :: insert move version Расширяет список, вставляя новый элемент в контейнер. |
24 | list :: вставить версию списка инициализатора Расширяет список, вставляя новые элементы в контейнер |
25 | list :: max_size
Возвращает максимальное количество элементов, которое может содержать список. |
26 | list :: merge
Объединяет два отсортированных списка в один. |
27 | list :: merge функция сравнения Объединяет два отсортированных списка в один. |
28 | list :: merge move version Объединяет два отсортированных списка в один, используя семантику перемещения. |
29 | list :: merge функция сравнения переместить версию Объединяет два отсортированных списка в один, используя семантику перемещения. |
30 | list :: operator = копировать версию Добавляет в список новое содержимое, заменяя старое. |
31 год | list :: operator = переместить версию Добавьте новое содержимое в список, заменив старое. |
32 | list :: operator = версия списка инициализатора Добавьте новое содержимое в список, заменив старое. |
33 | list :: pop_back
Удаляет последний элемент из списка. |
34 | list :: pop_front
Удаляет первый элемент из списка. |
35 год | list :: push_back
Вставляет новый элемент в конец списка. |
36 | list :: push_back версия перемещения Вставляет новый элемент в конец списка. |
37 | list :: push_front
Вставляет новый элемент в начало списка. |
38 | list :: push_front версия перемещения Вставляет новый элемент в начало списка. |
39 | list :: rbegin
Возвращает обратный итератор, указывающий на последний элемент списка. |
40 | list :: remove
удаляет элемент (ы) из списка, соответствующий значению. |
41 год | list :: remove_if
удаляет элементы из списка, удовлетворяющие условию. |
42 | list :: rend
Возвращает обратный итератор, указывающий на обратный конец списка. |
43 год | list :: resize
Изменяет размер списка. |
44 | list :: resize value version Изменяет размер списка. |
45 | list :: reverse
Изменяет порядок элементов в списке. |
46 | list :: size
Возвращает количество элементов, присутствующих в списке. |
47 | list :: sort
Сортирует элементы списка. |
48 | list :: sort функция сравнения Сортирует элементы списка. |
49 | list :: splice
Переносит все элементы из списка в * this. |
50 | list :: splice одиночный элемент Передает элемент, на который указывает итератор i, из списка x в * this . |
51 | list :: splice move version Переносит все элементы из списка x в * this , используя семантику перемещения. |
52 | list :: версия диапазона сращивания
Переносит элементы в диапазоне от первого до последнего от x до * this . |
53 | list :: splice версия перемещения одного элемента Переносит элемент, на который указывает итератор i, из списка x в * this , используя семантику перемещения. |
54 | list :: splice range и версия перемещения Переносит элементы в диапазоне от первого до последнего от x до * this , используя семантику перемещения. |
55 | list :: swap
Меняет содержимое списка на содержимое другого списка x . |
56 | list :: unique
Удаляет все последовательные повторяющиеся элементы из списка. |
57 | list :: unique
Удаляет все последовательные повторяющиеся элементы из списка. |
Перегруженные функции, не являющиеся членами
Sr. No. | Метод и описание |
---|---|
1 | оператор ==
Проверяет, равны ли два списка. |
2 | оператор! =
Проверяет, равны ли два списка. |
3 | оператор <
Проверяет, меньше ли первый список, чем другой. |
4 | оператор <=
Проверяет, является ли первый список меньшим или равным другому или нет. |
5 | оператор>
Проверяет, больше ли первый список, чем другой. |
6 | оператор> =
Проверяет, является ли первый список большим или равным другому или нет. |
7 | замена
Меняет содержимое двух списков. |