Front Page / Sequences / Concepts / Front Extensible Sequence

# Front Extensible Sequence

### Description

A Front Extensible Sequence is an Extensible Sequence that supports amortized constant time insertion and removal operations at the beginning.

### Refinement of

Extensible Sequence

### Expression requirements

In addition to the requirements defined in Extensible Sequence, for any Back Extensible Sequence `s` the following must be met:

Expression | Type | Complexity
--- | --- | ---
`push_front<s,x>::type` | Front Extensible Sequence | Amortized constant time
`pop_front<s>::type` | Front Extensible Sequence | Amortized constant time
`front<s>::type` | Any type | Amortized constant time

### Expression semantics

The semantics of an expression are defined only where they differ from, or are not defined in Extensible Sequence.

Expression | Semantics
--- | ---
`push_front<s,x>::type` | Equivalent to `insert<s,begin<s>::type,x>::type`; see push_front.
`pop_front<v>::type` | Equivalent to `erase<s,begin<s>::type>::type`; see pop_front.
`front<s>::type` | The first element in the sequence; see front.

### Models

- vector
- list

### See also

Sequences, Extensible Sequence, Back Extensible Sequence, push_front, pop_front, front