.. Sequences/Concepts//Extensible Sequence |40 Extensible Sequence =================== Description ----------- An |Extensible Sequence| is a sequence that supports insertion and removal of elements. Extensibility is orthogonal to sequence traversal characteristics. Expression requirements ----------------------- For any |Extensible Sequence| ``s``, its iterators ``pos`` and ``last``, |Forward Sequence| ``r``, and any type ``x``, the following expressions must be valid: +-----------------------------------+---------------------------+---------------------------+ | Expression | Type | Complexity | +===================================+===========================+===========================+ | ``insert::type`` | |Extensible Sequence| | Unspecified | +-----------------------------------+---------------------------+---------------------------+ | ``insert_range::type`` | |Extensible Sequence| | Unspecified | +-----------------------------------+---------------------------+---------------------------+ | ``erase::type`` | |Extensible Sequence| | Unspecified | +-----------------------------------+---------------------------+---------------------------+ | ``erase::type`` | |Extensible Sequence| | Unspecified | +-----------------------------------+---------------------------+---------------------------+ | ``clear::type`` | |Extensible Sequence| | Constant time | +-----------------------------------+---------------------------+---------------------------+ Expression semantics -------------------- +-----------------------------------+---------------------------------------------------------------+ | Expression | Semantics | +===================================+===============================================================+ | ``insert::type`` | A new sequence, concept-identical to ``s``, of | | | the following elements: | | | [``begin::type``, ``pos``), ``x``, | | | [``pos``, ``end::type``); see |insert|. | +-----------------------------------+---------------------------------------------------------------+ | ``insert_range::type`` | A new sequence, concept-identical to ``s``, of | | | the following elements: | | | [``begin::type``, ``pos``), | | | [``begin::type``, ``end::type``), | | | [``pos``, ``end::type``); see |insert_range|. | +-----------------------------------+---------------------------------------------------------------+ | ``erase::type`` | A new sequence, concept-identical to ``s``, of | | | the following elements: | | | [``begin::type``, ``pos``), | | | [``next::type``, ``end::type``); see |erase|. | +-----------------------------------+---------------------------------------------------------------+ | ``erase::type`` | A new sequence, concept-identical to ``s``, of | | | the following elements: | | | [``begin::type``, ``pos``), | | | [``last``, ``end::type``); see |erase|. | +-----------------------------------+---------------------------------------------------------------+ | ``clear::type`` | An empty sequence concept-identical to ``s``; see | | | |clear|. | +-----------------------------------+---------------------------------------------------------------+ Models ------ * |vector| * |list| See also -------- |Sequences|, |Back Extensible Sequence|, |insert|, |insert_range|, |erase|, |clear|