C++ Список

2075 / C++ / Список

 

#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);