# Class ContainerView
Generates a non-resizable view over a container.

Implements | ContainerConcept
All Subcl's | ResizableContainerView, ZipContainerView
All Impl'd | AssignableConcept, ContainerConcept, DestructibleConcept
Defined in | <seqan/sequence.h>
Signature | `template <TContainer, typename TSpec> class ContainerView<TContainer, TSpec>`

## Template Parameters

`TContainer` | The container type to create the view for.
`TSpec` | The specialization type. Defaults to void.

## Member Function Overview

### Member Functions Inherited From AssignableConcept

- `operator=`

## Interface Function Overview

- `ContainerView(); ContainerView(TOtherContainer & cont); ContainerView(TOtherContainer const & cont); ContainerView(TIterator const & begin, TIterator const & end);`
  The constructor.

### Interface Functions Inherited From AssignableConcept

- `assign`
- `set`
- `move`

### Interface Functions Inherited From ContainerConcept

- `begin`
- `end`
- `length`
- `empty`
- `swap`
- `writeValue`
- `write`
- `getObjectId`
- `moveValue`
- `append`
- `appendValue`
- `shrinkToFit`
- `directionIterator`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From ContainerConcept

- `DefaultGetIteratorSpec`
- `DefaultIteratorSpec`
- `Difference`
- `DirectionIterator`
- `GetValue`
- `Iterator`
- `Position`
- `Reference`
- `Size`
- `Value`

## Detailed Description

A ContainerView is a lightweight data structure storing only a begin and end pointer to an underlying container. The view can represent any range between the global begin and end of the contaniner. The view itself implements the ContainerConcept. The default implementation however is not resizable. The ResizableContainerView supports resizing of the view, but must not change the capacity of the underlying container.

## Interface Functions Detail

### `ContainerView(); ContainerView(TOtherContainer & cont); ContainerView(TOtherContainer const & cont); ContainerView(TIterator const & begin, TIterator const & end);`

The constructor.

#### Parameters

`cont` | Another container to copy from.
`begin` | An iterator pointing to the beginning of the view.
`end` | An iterator pointing to the end of the view.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

#### Dox Sources

    /*!
     * @class ContainerView
     *
     * @implements ContainerConcept
     *
     * @headerfile <seqan/sequence.h>
     *
     * @brief Generates a non-resizable view over a container.
     *
     * @signature template <TContainer, typename TSpec> class
     *            ContainerView<TContainer, TSpec>
     *
     * @tparam TContainer The container type to create the view for.
     * @tparam TSpec The specialization type. Defaults to void.
     *
     * A @link ContainerView @endlink is a lightweight data structure storing only a
     * begin and end pointer to an underlying container. The view can represent any
     * range between the global begin and end of the contaniner. The view itself
     * implements the @link ContainerConcept @endlink. The default implementation
     * however is not resizable. The @link ResizableContainerView @endlink supports
     * resizing of the view, but must not change the capacity of the underlying
     * container.
     *
     * @fn ContainerView#ContainerView
     *
     * @brief The constructor.
     *
     * @signature ContainerView(); ContainerView(TOtherContainer & cont);
     *            ContainerView(TOtherContainer const & cont);
     *            ContainerView(TIterator const & begin, TIterator const & end);
     *
     * @param cont Another container to copy from.
     * @param begin An iterator pointing to the beginning of the view.
     * @param end An iterator pointing to the end of the view.
     */