# Containers

Collaboration diagram for Containers:

## Detailed Description

Containers are collections of objects.

A container may hold any type which meets certain requirements, but the type of contained object is chosen at compile time, and all objects in a given container must be of the same type. (Polymorphism is possible by declaring a container of pointers to a base class and then populating it with pointers to instances of derived classes. Variant value types such as the `any` class from Boost can also be used.

All contained types must be `Assignable` and `CopyConstructible`. Specific containers may place additional requirements on the types of their contained objects.

Containers manage memory allocation and deallocation themselves when storing your objects. The objects are destroyed when the container is itself destroyed. Note that if you are storing pointers in a container, `delete` is not automatically called on the pointers before destroying them.

All containers must meet certain requirements, summarized in tables.

The standard containers are further refined into Sequences and Associative Containers.

## Classes

- class std::basic_string< _CharT, _Traits, _Alloc >
    Managing sequences of characters and character-like objects. More...
- class std::bitset< _Nb >
    The bitset class represents a fixed-size sequence of bits. 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::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::map< _Key, _Tp, _Compare, _Alloc >
    A standard container made up of (key,value) pairs, which can be retrieved based on a key, in logarithmic time. More...
- class std::multimap< _Key, _Tp, _Compare, _Alloc >
    A standard container made up of (key,value) pairs, which can be retrieved based on a key, in logarithmic time. More...
- class std::multiset< _Key, _Compare, _Alloc >
    A standard container made up of elements, which can be retrieved in logarithmic time. 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::set< _Key, _Compare, _Alloc >
    A standard container made up of unique keys, which can be retrieved in logarithmic time. 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...