Библиотека 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 замена

Меняет содержимое двух списков.