Список

#include <list>  (двозв'язний)

list<int> list1;                 // пустий

list<int> list2(5);              // онулений список з 5 чисел

list<int> list3(5, 2);           // список з 5 чисел, які дорівнюють 2-м

list<int> list4{ 1, 2, 3 };      // список з чисел 1, 2, 3

list<int> list5 = { 2, 3, 4 };   // список з чисел 2, 3, 4

list<int> list7 = list5;         // список list7 - копия list5

list<int> list6(list5);          // список list6 - копія list5

list<int> numbers = { 3, 5, 7, 9, 11, 13 };

int size = numbers.size();     // 6

int first = numbers.front();   // 3

int last = numbers.back();    // 13

bool b = numbers.empty();   // false

for (int n : numbers){

     cout << n << " ";

}

// через ітератори, для numbers.erase(it)

for (auto it = numbers.begin(); it != numbers.end(); it++)

{

     cout << *it << " ";

}

numbers.resize(3);      // урізіти до 3 елементів

numbers.resize(5, 7)   // урізіти до 6 елементів, нові елементи заповнити 7-ми

numbers.assign({ 10, 20, 30, 40, 50 });   // замінти на

numbers.assign({ 5, 5 });   // замінти на 5-ки

auto start = ++values.begin();   // ітератор вказує на другий елемнт

auto end = --values.end();   // ітератор вказує на передостанній елемент

numbers.assign(start, end);   // урізати 

list1.swap(list2);  // обміняти посилання на сиписки елементів

Додавання

numbers.push_back(a) - додати в кінець списку

numbers.push_front(a) - додати в початок списку

numbers.emplace_back(a) - додати в кінець списку

numbers.emplace_front(a) - додати в початок списку

numbers.emplace(pos, a) - вставляє елемент на позицію, на яку вказує ітератор pos. 

Повертає ітератор на доданий елемент

numbers.insert(pos, a) - вставляє елемент на позицію, на яку вказує ітератор pos. 

Повертає ітератор на доданий елемент

numbers.insert(pos, n, a) - вставляє n елементів val починаючи з позиції, на яку вказує ітератор pos. Повертає ітератор на перший доданий елемент. Якщо n = 0, то повертається ітератор pos.

numbers.insert(pos, begin, end) - вставляє починаючи з позиції, на яку вказує ітератор pos, елементи з іншого контейнера з діапазону між ітераторами begin і end. Повертає ітератор на перший доданий елемент. Якщо між ітераторами begin і end немає елементів, то повертається ітератор pos.

numbers.insert(pos, values) - вставляє список значень ​​починаючи з позиції, на яку вказує ітератор pos. Повертає ітератор на перший доданий елемент. 

Якщо values ​​не містить елементів, то повертається итератор pos.

Видалення

numbers.clear() - видаляє всі елементи; clear(p)

numbers.pop_back() - видаляє останній елемент

numbers.pop_front() - видаляє перший елемент

numbers.erase(p) - видаляє елемент, на який вказує ітератор p. Повертає ітератор на елемент, наступний після видаленого, або на кінець контейнера, якщо видалений елемент був останнім 

numbers.erase(begin, end) - видаляє елементи з діапазону, на початок і кінець якого вказують ітератори begin і end. Повертає ітератор на елемент, наступний після останнього видаленого, або на кінець контейнера, якщо видалений останній елемент.

Сортування

bool F1(const Student& first, const Student& second)

{

    if (first.salary > second.salary)

    {

        return true;

    }

    else

    {

        return false;

    }

}

list.sort(F1);