Здавалка
Главная | Обратная связь

Анализ и использование класса list. Библиотека list.



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

template <class T, class Allocator = Allocator<T>>class list

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

explicit list(const Allocator &a = Allocator()); explicit list(size_type num, const T &val = T(), const Allocator &a = Allocator()); list(const list <T,Allocator> &ob); template < class InIter> list(InIter start, InIter end, const Allocator &a = Allocator());

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

Для класса list определены следующие операторы сравнения:

  • ==
  • <
  • <=
  • !=
  • >
  • >=

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

template <class InIter> void assign(InIter start, InIter end);

Помещает в список последовательность, определяемую параметрами start и end.

void assign(size_type num, const T &val);

Помещает в список num элементов со значением val.

reference back();

const_reference back() const;

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

iterator begin();

const_iterator begin() const;

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

void clear();

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

bool empty() const;

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

const_iterator end() const;

iterator end();

Возвращает итератор для конца списка.

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 T &val = T());

Вставляет значение 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(list<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, const T &val = T());

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

void reverse();

Реверсирует список.

size_type size() const;

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

void sort();

template <class Comp> void sort(Comp 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.

Предыдущая Оглавление Следующая
Предыдущая Оглавление Следующая






©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.