В С++ контейнер list задаёт стандартные двунаправленные списки. В эти списки можно быстро вставлять, а также удалять элементы. Однако операция обращения к элементу по номеру долгая.
Использование list требует подключения
| 
					 1  | 
						#include <list>  | 
					
Объявляется список так:
| 
					 1  | 
						list<int> MyL;  | 
					
При работе со списком можно воспользоваться указателями:
- myL.begin() - указатель на начало списка,
 - myL.end() - указатель на конец списка,
 - myL.rbegin() - реверсивный указатель на конец списка,
 - myL.rend() - реверсивный указатель на начало списка.
 
Полезна также функция проверки списка на пустоту:
- myL.empty().
 
Основные функции, для работы с отдельными элементами списка:
- myL.push_back(e) - добавить в конец элемент,
 - myL.pop_back() - удалить последний элемент,
 - myL.front() - первый элемент списка,
 - myL.back() - последний элемент списка,
 - myL.insert(i, e) - вставка элемента в позицию i,
 - myL.erase(first,last) - удаляет последовательность элементов.
 
При работе со списками, чтобы удобно было по списку ходить, можно пользоваться итераторами, например,
| 
					 1  | 
						list<int>::iterator i;  | 
					
Наконец, рассмотрим пример работы со списком:
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38  | 
						#include <list> // подключаем list #include <string> // подключаем строки string #include <iostream> // подключаем cout using namespace std; // чтобы не писать std:: int main() {   list<string> L; // инициализация list   list<string>::iterator i;   L.push_back("January"); // список January   L.push_back("March"); // список January March   L.push_back("April"); // список January March April   i = L.begin();   i++;   L.insert(i, "February"); // список January February March April   L.push_back("June"); // список January February March April June   i = L.end();   i--;   L.insert(i, "May"); // список January February March April May June   i = L.end();   i--;   i--;   i--;   L.erase(i); // список January February March May June   L.pop_back(); // список January February March May   for(i = L.begin(); i != L.end(); i++)     cout << (*i) << " ";   system("pause"); }  | 
					
