Список
#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);