# Class AlignCols
Pseudo columns container for row-based Align class.

Implements | EqualityComparableConcept, RandomAccessContainerConcept
All Impl'd | AssignableConcept, ContainerConcept, DestructibleConcept, EqualityComparableConcept, ForwardContainerConcept, RandomAccessContainerConcept, ReversibleContainerConcept
Defined in | <seqan/align.h>
Signature | `template <typename TAlign> class AlignCols<TAlign>;`

## Template Parameters

`TAlign` | The Align type.

## Member Function Overview

### Member Functions Inherited From AssignableConcept

- `operator=`

### Member Functions Inherited From EqualityComparableConcept

- `operator!=`
- `operator==`

### Member Functions Inherited From RandomAccessContainerConcept

- `operator[]`

## Interface Function Overview

- `TIterator iter(cols, pos[, tag]);`
  Iterator to the item at the given position in the alignment columns.
- `TColumn value(alignCols, pos);`
  Returns AlignCols value at a position.

### 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 Functions Inherited From RandomAccessContainerConcept

- `value`
- `assignValue`
- `getValue`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From ContainerConcept

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

## Interface Functions Detail

### `TIterator iter(cols, pos[, tag]);`

Iterator to the item at the given position in the alignment columns.

#### Parameters

`cols` | The AlignCols object to get the iterator for.
`pos` | The position to get the iterator for.
`tag` | The tag to pick the type of the iterator.

#### Returns

`TIterator` | The resulting iterator. If `TTag` is the type of `tag` and `TAlignCols` the type of `cols` then TIterator is of the type `Iterator<TAlignCols, TTag>::Type`.

#### Remarks

If `pos` is out of range then the iterator is invalid.

#### Data Races

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

### `TColumn value(alignCols, pos);`

Returns AlignCols value at a position.

#### Returns

`TColumn` | The column, as determined by Value metafunction.

#### Data Races

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

#### Dox Sources

    /*!
     * @class AlignCols
     *
     * @implements EqualityComparableConcept
     * @implements RandomAccessContainerConcept
     *
     * @headerfile <seqan/align.h>
     *
     * @brief Pseudo columns container for row-based Align class.
     *
     * @signature template <typename TAlign> class AlignCols<TAlign>;
     *
     * @tparam TAlign The Align type.
     *
     * @fn AlignCols#iter
     *
     * @headerfile <seqan/align.h>
     *
     * @brief Iterator to the item at the given position in the alignment columns.
     *
     * @signature TIterator iter(cols, pos[, tag]);
     *
     * @param[in] cols The AlignCols object to get the iterator for.
     * @param[in] pos The position to get the iterator for.
     * @param[in] tag The tag to pick the type of the iterator.
     *
     * @return TIterator The resulting iterator. If <tt>TTag</tt> is the type of
     *                   <tt>tag</tt> and <tt>TAlignCols</tt> the type of
     *                   <tt>cols</tt> then TIterator is of the type
     *                   <tt>Iterator&lt;TAlignCols, TTag&gt;::Type</tt>.
     *
     * @section Remarks
     *
     * If <tt>pos</tt> is out of range then the iterator is invalid.
     *
     * @fn AlignCols#value
     *
     * @headerfile <seqan/align.h>
     *
     * @brief Returns AlignCols value at a position.
     *
     * @signature TColumn value(alignCols, pos);
     *
     * @return TColumn The column, as determined by Value metafunction.
     */