Операция | Назначение |
forward_list<T> flst | Конструктор по умолчанию, создает пустой список |
forward_list<T> flst(n) | Создает список изn элементов, созданных конст-руктором по умолчанию |
forward_list<T> flst1(flst) | Копирующий конструктор, создает новый список как копию спискаflst |
forward_list<T> flst1=flst | Копирующий конструктор, создает новый список как копию спискаflst |
forward_list<T> flst(n,elem) | Создает список, инициа-лизированный n копиями элемента elem |
forward_list<T> flst(beg,end) | Создает список, инициа-лизированный элементами интервала[beg,end) любого контейнера, в том числе и из элементов простого массива |
forward_list<T> flst(initlist) | Создает список, инициа-лизированный элементами списка инициализации initlist |
forward_list<T> flst=initlist | Создает список, инициа-лизированный элементами списка инициализации initlist |
flst.~forward_list() | Уничтожает все элементы списка и освобождает память |
Таблица 26.9
Немодифицирующие операции
Операция | Назначение |
flst.empty() | Возвращает true, если список пуст |
flst.max_size() | Возвращает максимальный размер списка |
flst1 == flst2 | Проверяет равенство двух списков |
flst1!= flst2 | Проверяет неравенство двух списков |
flst1 < flst2 | Проверяет, что flst1 < flst2 |
flst1 > flst2 | Проверяет, что flst1 > flst2 |
flst1 <= flst2 | Проверяет, что flst1 <= flst2 |
flst1 >= flst2 | Проверяет, что flstl >= flst2 |
Таблица 26.10
Операции присваивания
Операция | Назначение |
flst1 = flst2 | Присваивает списку flst1 копии всех элементов списка flst2 |
flst.assign(n, elem) | Присваивает элементам спи-ска n копий elem |
flst.assign(begin, end) | Присваивает списку элемен-ты из интервала [begin, end) |
flst.assign(initlist) | Присваивание всех элемен-тов списка инициализации initlist списку flst |
flst1.swap(flst2) | Обменивает содержимое списков flstl и flst2 |
swap(flstl, flst2) | Обменивает содержимое списков flstl и flst2 в форме функции |
Доступ к элементам
Для доступа ко всем элементам списка необходимо использовать диапазонные циклы for, специальные операции или итераторы. Однонаправленные списки поддерживают прямой доступ только к первому элементу, и поэтому в них предусмотрена только функция-член front(), предоставляющая прямой доступ к первому элементу:
flst.front() - Возвращает первый элемент (не проверяя, существует ли этот элемент)
Эта операция не проверяет, пуст ли контейнер. Если контейнер пуст, вызов этой операции приводит к непредсказуемым последствиям.
Таблица 26.11
Операции с итераторами
Операция | Назначение |
flst.begin(), flst.cbegin() | Возвращает однонаправленный итератор (константный итера-тор), указывающий на первый элемент списка |
flst.end(), flst.cend() | Возвращает однонаправленный итератор (константный итера-тор), установленный на позицию, следующую за последним элементом |
flst.before_begin(), flst.cbefore_begin() | Возвращает однонаправленный итератор(константный итера-тор), установленный на позицию, предшествующую первому элементу |
Таблица 26.12