Анализ и использование класса list. Библиотека list.
Класс list поддерживает работу двунаправленного связанного списка. Спецификация его шаблона выглядит следующим образом:
Здесь T - тип данных, сохраняемых в списке. Класс list имеет следующие конструкторы:
Первая форма конструктора создает пустой список. Вторая создает список, который содержит 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 Все права принадлежат авторам размещенных материалов.
|