.. Sequences/Classes//list |20 list ==== Description ----------- A ``list`` is a |variadic|, `forward`__, `extensible`__ sequence of types that supports constant-time insertion and removal of elements at the beginning, and linear-time insertion and removal of elements at the end and in the middle. __ `Forward Sequence`_ __ `Extensible Sequence`_ Header ------ +-------------------+-------------------------------------------------------+ | Sequence form | Header | +===================+=======================================================+ | Variadic | ``#include `` | +-------------------+-------------------------------------------------------+ | Numbered | ``#include `` | +-------------------+-------------------------------------------------------+ Model of -------- * |Variadic Sequence| * |Forward Sequence| * |Extensible Sequence| * |Front Extensible Sequence| Expression semantics -------------------- In the following table, ``l`` is a ``list``, ``pos`` and ``last`` are iterators into ``l``, ``r`` is a |Forward Sequence|, and |t1...tn| and ``x`` are arbitrary types. +---------------------------------------+-----------------------------------------------------------+ | Expression | Semantics | +=======================================+===========================================================+ | .. parsed-literal:: | ``list`` of elements |t1...tn|; see | | | |Variadic Sequence|. | | list<|t1...tn|> | | | list\ *n*\ <|t1...tn|> | | +---------------------------------------+-----------------------------------------------------------+ | .. parsed-literal:: | Identical to ``list``\ *n*\ ``<``\ |t1...tn|\ ``>``; | | | see |Variadic Sequence|. | | list<|t1...tn|>::type | | | list\ *n*\ <|t1...tn|>::type | | +---------------------------------------+-----------------------------------------------------------+ | ``begin::type`` | An iterator to the beginning of ``l``; | | | see |Forward Sequence|. | +---------------------------------------+-----------------------------------------------------------+ | ``end::type`` | An iterator to the end of ``l``; | | | see |Forward Sequence|. | +---------------------------------------+-----------------------------------------------------------+ | ``size::type`` | The size of ``l``; see |Forward Sequence|. | +---------------------------------------+-----------------------------------------------------------+ | ``empty::type`` | |true if and only if| ``l`` is empty; see | | | |Forward Sequence|. | +---------------------------------------+-----------------------------------------------------------+ | ``front::type`` | The first element in ``l``; see | | | |Forward Sequence|. | +---------------------------------------+-----------------------------------------------------------+ | ``insert::type`` | A new ``list`` of following elements: | | | [``begin::type``, ``pos``), ``x``, | | | [``pos``, ``end::type``); see |Extensible Sequence|. | +---------------------------------------+-----------------------------------------------------------+ | ``insert_range::type`` | A new ``list`` of following elements: | | | [``begin::type``, ``pos``), | | | [``begin::type``, ``end::type``) | | | [``pos``, ``end::type``); see |Extensible Sequence|. | +---------------------------------------+-----------------------------------------------------------+ | ``erase::type`` | A new ``list`` of following elements: | | | [``begin::type``, ``pos``), | | | [``next::type``, ``end::type``); see | | | |Extensible Sequence|. | +---------------------------------------+-----------------------------------------------------------+ | ``erase::type`` | A new ``list`` of following elements: | | | [``begin::type``, ``pos``), | | | [``last``, ``end::type``); see |Extensible Sequence|. | +---------------------------------------+-----------------------------------------------------------+ | ``clear::type`` | An empty ``list``; see |Extensible Sequence|. | +---------------------------------------+-----------------------------------------------------------+ | ``push_front::type`` | A new ``list`` containing ``x`` as its first | | | element; see |Front Extensible Sequence|. | +---------------------------------------+-----------------------------------------------------------+ | ``pop_front::type`` | A new ``list`` containing all but the first elements | | | of ``l`` in the same order; see | | | |Front Extensible Sequence|. | +---------------------------------------+-----------------------------------------------------------+ Example ------- .. parsed-literal:: typedef list floats; typedef push_front::type types; BOOST_MPL_ASSERT(( is_same< front::type, int > )); See also -------- |Sequences|, |Variadic Sequence|, |Forward Sequence|, |Extensible Sequence|, |vector|, |list_c|