# Spec BfsIterator
Iterate vertices of a graph in breadth-first fashion.

Extends | Iter
All Extended | Iter
All Impl'd | IteratorAssociatedTypesConcept
Defined in | <seqan/graph_types.h>
Signature | `Iterator<TGraph, BfsIterator>::Type; template <typename TGraph, typename TSpec> class Iter<TGraph, GraphIterator<InternalBfsIterator<TSpec> >;`

## Template Parameters

`TGraph` | The graph to iterate the vertices of.

## Member Function Overview

- `Iter::Iter();, Iter::Iter(iter);, Iter::Iter(graph, v);`
  Constructor.

### Member Functions Inherited From Iter

- `Iter`

## Interface Function Overview

### Interface Functions Inherited From IteratorAssociatedTypesConcept

- `operator*`
- `value`
- `getValue`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From Iter

- `Container`
- `IterComplementConst`
- `IterMakeConst`
- `Spec`

### Interface Metafunctions Inherited From IteratorAssociatedTypesConcept

- `Difference`
- `GetValue`
- `Pointer`
- `Reference`
- `Value`

## Detailed Description

The first signature is the signature of the corresponding graph's Iterator metafunction call. The second call is the internal definition of the type. You should always get this type using the metafunction call from the first signature.

## Member Functions Detail

### `Iter::Iter(); Iter::Iter(iter); Iter::Iter(graph, v);`

Constructor.

#### Parameters

`iter` | Other BfsIterator to copy from.
`graph` | The Graph to iterate vertices in BFS fashion.
`v` | The descriptor of the vertex to start BFS iteration.

#### Data Races

Thread safety unknown!

#### Dox Sources

    /*!
     * @class BfsIterator
     *
     * @extends Iter
     *
     * @headerfile <seqan/graph_types.h>
     *
     * @brief Iterate vertices of a graph in breadth-first fashion.
     *
     * @signature Iterator<TGraph, BfsIterator>::Type;
     * @signature template <typename TGraph, typename TSpec> class Iter<TGraph,
     *            GraphIterator<InternalBfsIterator<TSpec> >;
     *
     * @tparam TGraph The graph to iterate the vertices of.
     *
     * The first signature is the signature of the corresponding @link
     * ContainerConcept#Iterator graph's Iterator @endlink metafunction call. The
     * second call is the internal definition of the type. You should always get
     * this type using the metafunction call from the first signature.
     *
     * @fn BfsIterator::BfsIterator
     *
     * @brief Constructor.
     *
     * @signature Iter::Iter();
     * @signature Iter::Iter(iter);
     * @signature Iter::Iter(graph, v);
     *
     * @param[in] iter Other BfsIterator to copy from.
     * @param[in] graph The @link Graph @endlink to iterate vertices in BFS fashion.
     * @param[in] v The descriptor of the vertex to start BFS iteration.
     */