Контейнер list реализует структуру данных "двусвязный список" с возможностью добавления (и удаления) элементов и в начало, и в конец, и в середину списка за время $О(1)$.
Минусом двусвязного списка является отсутствие возможности произвольного доступа, которое есть у массива и вектора.
list<int> A -- создание пустого списка для хранения элементов типа int.
list<int> A(n, value) Cоздается список из n элементов со значением value.
front() -- первый элемент списка
back() -- последний элемент списка
push_back(value) -- добавляет элемент в конец списка
push_front(value) -- добавляет элемент в начало списка
insert(it, value) -- вставка некоторого значения value перед it
insert(i, n, value) -- вставка n копий элементов со значением value перед i
pop_front() -- удаляет первый элемент списка
pop_back() -- удаляет последний элемент (не возвращает значение!)
erase(it) -- удаляет элемент, на который указывает данный итератор
erase(start, fin) -- удалению подлежат все элементы между start и fin, но fin не удаляется.
clear() -- удаляет все элементы списка
size() -- выдает количество элементов списка
empty() -- возвращает истину, если вызывающий список пуст
Тип итератора должен строго соответствовать типу контейнера с учётом параметров шаблона.