Рубрики

Список в стандартной библиотеке шаблонов C ++ (STL)

Списки являются контейнерами последовательностей, которые допускают несмежное выделение памяти. По сравнению с вектором, список имеет медленный обход, но как только позиция найдена, вставка и удаление происходят быстро. Обычно, когда мы говорим о Списке, мы говорим о двусвязном списке. Для реализации односвязного списка мы используем прямой список.

Ниже приведена программа, демонстрирующая работу некоторых функций List:

#include <iostream>
#include <list>
#include <iterator>

using namespace std;

  
// функция для печати элементов в списке

void showlist(list <int> g)

{

    list <int> :: iterator it;

    for(it = g.begin(); it != g.end(); ++it)

        cout << '\t' << *it;

    cout << '\n';

}

  

int main()

{

  

    list <int> gqlist1, gqlist2;

  

  

    for (int i = 0; i < 10; ++i)

    {

        gqlist1.push_back(i * 2);

        gqlist2.push_front(i * 3);

    }

    cout << "\nList 1 (gqlist1) is : ";

    showlist(gqlist1);

  

    cout << "\nList 2 (gqlist2) is : ";

    showlist(gqlist2);

  

    cout << "\ngqlist1.front() : " << gqlist1.front();

    cout << "\ngqlist1.back() : " << gqlist1.back();

  

    cout << "\ngqlist1.pop_front() : ";

    gqlist1.pop_front();

    showlist(gqlist1);

  

    cout << "\ngqlist2.pop_back() : ";

    gqlist2.pop_back();

    showlist(gqlist2);

  

    cout << "\ngqlist1.reverse() : ";

    gqlist1.reverse();

    showlist(gqlist1);

  

    cout << "\ngqlist2.sort(): ";

    gqlist2.sort();

    showlist(gqlist2);

  

    return 0;

  
}

Вывод вышеуказанной программы:

List 1 (gqlist1) is :     0    2    4    6    
8    10    12    14    16    18

List 2 (gqlist2) is :     27    24    21    18    
15    12    9    6    3    0

gqlist1.front() : 0
gqlist1.back() : 18
gqlist1.pop_front() :     2    4    6    8    
10    12    14    16    18

gqlist2.pop_back() :     27    24    21    18    
15    12    9    6    3

gqlist1.reverse() :     18    16    14    12    
10    8    6    4    2

gqlist2.sort():     3    6    9    12    
15    18    21    24    27

Функции, используемые со списком:

  • front () — возвращает значение первого элемента в списке.
  • back () — возвращает значение последнего элемента в списке.
  • push_front (g) — добавляет новый элемент «g» в начале списка.
  • push_back (g) — добавляет новый элемент «g» в конец списка.
  • pop_front () — удаляет первый элемент списка и уменьшает размер списка на 1.
  • pop_back () — удаляет последний элемент списка и уменьшает размер списка на 1
  • list :: begin () и list :: end () в C ++ STL — функция begin () возвращает итератор, указывающий на первый элемент списка
  • Функция end ()end () возвращает итератор, указывающий на теоретический последний элемент, который следует за последним элементом.
  • Функции list rbegin () и rend () в C ++ STLrbegin () возвращает обратный итератор, который указывает на последний элемент списка. rend () возвращает обратный итератор, который указывает на позицию перед началом списка.
  • Функции list cbegin () и cend () в C ++ STLcbegin () возвращает постоянный итератор произвольного доступа, который указывает на начало списка. cend () возвращает постоянный итератор произвольного доступа, который указывает на конец списка.
  • Функции list crbegin () и crend () в C ++ STLcrbegin () возвращает постоянный обратный итератор, который указывает на последний элемент списка, то есть на обратное начало контейнера. crend () возвращает постоянный обратный итератор, который указывает на теоретический элемент, предшествующий первому элементу в списке, то есть на обратный конец списка.
  • empty () — Возвращает, является ли список пустым (1) или нет (0).
  • insert () — вставляет новые элементы в список перед элементом в указанной позиции.
  • erase () — удаляет отдельный элемент или диапазон элементов из списка.
  • assign ()назначает новые элементы списку путем замены текущих элементов и изменения размера списка.
  • remove () — удаляет все элементы из списка, которые равны данному элементу.
  • list :: remove_if () в C ++ STL — используется для удаления всех значений из списка, которые соответствуют true предикату или условию, заданному в качестве параметра функции.
  • reverse () — переворачивает список.
  • size () — возвращает количество элементов в списке.
  • Функция list resize () в C ++ STL — используется для изменения размера контейнера списка.
  • sort ()сортирует список по возрастанию.
  • Функция list max_size () в C ++ STL — возвращает максимальное количество элементов, которое может содержать контейнер списка.
  • list unique () в C ++ STL — удаляет все повторяющиеся последовательные элементы из списка.
  • list :: emplace_front () и list :: emplace_back () в C ++ STLфункция emplace_front () используется для вставки нового элемента в контейнер списка, новый элемент добавляется в начало списка. Функция emplace_back () используется для вставки нового элемента в контейнер списка, новый элемент добавляется в конец списка.
  • list :: clear () в C ++ STL — функция clear () используется для удаления всех элементов контейнера списка, что делает его размером 0.
  • list :: operator = в C ++ STL — этот оператор используется для назначения нового содержимого контейнеру путем замены существующего содержимого.
  • list :: swap () в C ++ STL — эта функция используется для замены содержимого одного списка другим списком того же типа и размера.
  • Функция list splice () в C ++ STL — используется для переноса элементов из одного списка в другой.
  • Функция list merge () в C ++ STL — объединяет два отсортированных списка в один
  • Функция list emplace () в C ++ STL — расширяет список, вставляя новый элемент в заданную позицию.

Последние статьи в списке C ++

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Список в стандартной библиотеке шаблонов C ++ (STL)

0.00 (0%) 0 votes