std::list (3) - Linux Manuals
std::list: std::list
NAME
Synopsis
Defined in header <list>
template<
class T, (1)
class Allocator = std::allocator<T>
> class list;
namespace pmr {
template <class T> (2) (since C++17)
using list = std::list<T, std::pmr::polymorphic_allocator<T>>;
}
std::list is a container that supports constant time insertion and removal of elements from anywhere in the container. Fast random access is not supported. It is usually implemented as a doubly-linked list. Compared to std::forward_list this container provides bidirectional iteration capability while being less space efficient.
Adding, removing and moving the elements within the list or across several lists does not invalidate the iterators or references. An iterator is invalidated only when the corresponding element is deleted.
std::list meets the requirements of Container, AllocatorAwareContainer, SequenceContainer and ReversibleContainer.
Template parameters
T - The requirements that are imposed on the elements depend on the actual operations performed on the container. Generally, it is required that element type is a complete type and meets the requirements of Erasable, but many member functions impose stricter requirements. (since C++11)