list

Класс list поддерживает работу списка. Спецификация его шаблона выглядит следующим образом.

Копировать
template <class Т, class Allocator = allocator<T>> class list

Здесь Т - тип данных, сохраняемых в списке. Класс list имеет следующие конструкторы.

Копировать
explicit list(const Allocator &a = Allocator!) );
explicit list(size_type num, const Т &val = Т(), const Allocator &a = Allocator())
list(const list &ob);
template list(InIter start, InIter end, const Allocator &a = Allocator());

Первая форма конструктора создает пустой список. Вторая создает список, который содержит пит элементов со значением val. Третья создает список, который содержит те же элементы, что и объект ob. Четвертая создает список, который содержит элементы в диапазоне, заданном параметрами start и end.

Для класса list определены следующие операторы сравнения: ==, <, < = , !=,> и >=.

Класс list содержит следующие функции-члены.

Функция-член Назначение
template <class InIter> void assign(InIter start, InIter end); Помещает в список последовательность, определяемую параметрами start и end
void assign(size_type num, const Т &val); Помещает в список num элементов со значением val
reference back();
const_reference back() const;
Возвращает ссылку на последний элемент в списке
iterator begin();
const_iterator begin() const;
Возвращает итератор для первого элемента в списке
void clear(); Удаляет все элементы из списка
bool empty() const; Возвращает значение истины, если используемый список пуст, и значение лжи в противном случае
iterator end();
const_iterator end() const;
Возвращает итератор для конца списка
iterator erase(iterator i); Удаляет элемент, адресуемый итератором i; возвращает итератор для элемента, расположенного после удаленного элемента
iterator erase(iterator start, iterator end); Удаляет элементы в диапазоне, задаваемом параметрами start и end; возвращает итератор для элемента, расположенного за последним удаленным элементом
reference front();
const_reference front() const;
Возвращает ссылку на первый элемент в списке
allocator_type get_allocator() const; Возвращает распределитель списка
iterator insert(iterator i, const Т &val = Т()); Вставляет значение val непосредственно перед элементом, заданным параметром i; возвращает итератор для этого элемента
void insert(iterator i, size_type num; const T &val); Вставляет num копий значения val непосредственно перед элементом, заданным параметром i
template <class InIter> void insert(iterator i, InIter start, InIter end); Вставляет в список последовательность, определяемую параметрами start и end, непосредственно перед элементом, заданным параметром i
size_type max_size() const; Возвращает максимальное число элементов, которое может содержать список
void merge (list<T, Allocator> &ob);
template <class Comp> void merge(1ist<T, Allocator> &ob, Comp cmpfn);
Объединяет упорядоченный список, содержащийся в объекте ob, с данным упорядоченным списком. Результат также упорядочивается. После объединения список, содержащийся в ob, остается пустым. Во второй форме может быть задана функция сравнения, которая определяет, когда один элемент меньше другого
void pop_back(); Удаляет последний элемент в списке
void pop_front(); Удаляет первый элемент в списке
void push_back(const T &val); Добавляет элемент со значением, заданным параметром val, в конец списка
void push_front(const T &val); Добавляет элемент со значением, заданным параметром val, в начало списка
reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
Возвращает реверсивный итератор для конца списка
reverse_iterator rend();
const_reverse_iterator rend() const;
Возвращает реверсивный итератор для начала списка
void remove(const T &val); Удаляет из списка элементы со значением val
template <class UnPred> void remove_if(UnPred pr); Удаляет элементы, для которых унарный предикат pr равен значению true
void resize (size_type num, Т val = T()); Устанавливает размер списка равным значению, заданному параметром num. Если список для этого нужно удлинить, то в конец списка добавляются элементы со значением, заданным параметром val
void reverse(); Реверсирует список
size_type size() const; Возвращает текущее количество элементов в списке
void sort();
template <class Comp> void sort(Сomp cmpfn);
Сортирует список. Вторая форма сортирует список с помощью функции сравнения cmpfn, чтобы определять, когда один элемент меньше другого
void splice(iterator i, list<T, Allocator> &ob); Вставляет содержимое списка ob в данный список в позиции, указанной итератором i. После выполнения этой операции список ob остается пустым
void splice(iterator i, list<T, Allocator> &ob, iterator el); Удаляет из списка ob элемент, адресуемый итератором el, и сохраняет его в данном списке в позиции, адресуемой итератором i
void splice(iterator i, list<T, Allocator> &ob, iterator start, iterator end); Удаляет из списка ob диапазон, определяемый параметрами start и end, и сохраняет его в данном списке, начиная с позиции, адресуемой итератором i
void swap(list<T, Allocator> &ob); Выполняет обмен элементами данного списка и списка ob
void unique();
template <class BinPred> void unique(BinPred pr);
Удаляет из списка элементы-дубликаты. Вторая форма для определения уникальности использует предикат pr