libstdc++
Sequences
Collaboration diagram for Sequences:

Classes

struct  std::array< _Tp, _Nm >
 A standard container for storing a fixed size sequence of elements. More...
class  std::basic_string< _CharT, _Traits, _Alloc >
 Managing sequences of characters and character-like objects. More...
class  std::deque< _Tp, _Alloc >
 A standard container using fixed-size memory allocation and constant-time manipulation of elements at either end. More...
class  std::forward_list< _Tp, _Alloc >
 A standard container with linear time access to elements, and fixed time insertion/deletion at any point in the sequence. More...
class  std::list< _Tp, _Alloc >
 A standard container with linear time access to elements, and fixed time insertion/deletion at any point in the sequence. More...
class  std::priority_queue< _Tp, _Sequence, _Compare >
 A standard container automatically sorting its contents. More...
class  std::queue< _Tp, _Sequence >
 A standard container giving FIFO behavior. More...
class  std::stack< _Tp, _Sequence >
 A standard container giving FILO behavior. More...
class  std::vector< _Tp, _Alloc >
 A standard container which offers fixed time access to individual elements in any order. More...
class  std::vector< bool, _Alloc >
 A specialization of vector for booleans which offers fixed time access to individual elements in any order. More...

Detailed Description

Sequences arrange a collection of objects into a strictly linear order.

The differences between sequences are usually due to one or both of the following:

As an example of the first case, vector is required to use a contiguous memory layout, while other sequences such as deque are not.

The prime reason for choosing one sequence over another should be based on the second category of differences, algorithmic complexity. For example, if you need to perform many inserts and removals from the middle of a sequence, list would be ideal. But if you need to perform constant-time access to random elements of the sequence, then list should not be used.

All sequences must meet certain requirements, summarized in tables.