# Spec ConcatDirect StringSet
Owner StringSet implementation that stores strings in one large underlying string.

Extends | OwnerStringSet
All Extended | OwnerStringSet, StringSet
All Impl'd | AssignableConcept, ContainerConcept, DestructibleConcept, ForwardContainerConcept, RandomAccessContainerConcept, ReversibleContainerConcept, SegmentableConcept, StringConcept, TextConcept
Defined in | <seqan/sequence.h>
Signature | `template <typename TString> class StringSet<TString, Owner<ConcatDirect> >;`

## Template Parameters

`TString` | The type of the string to store in the string set.

## Member Function Overview

### Member Functions Inherited From AssignableConcept

- `operator=`

### Member Functions Inherited From RandomAccessContainerConcept

- `operator[]`

## Interface Function Overview

### Interface Functions Inherited From StringSet

- `assignValue`
- `assignValueById`
- `clear`
- `concat`
- `getValueById`
- `idToPosition`
- `lengthSum`
- `positionToId`
- `removeValueById`
- `reserve`
- `strSplit`
- `valueById`

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

- `prefix`
- `infixWithLength`
- `infix`
- `suffix`

### Interface Functions Inherited From StringConcept

- `iter`
- `append`
- `appendValue`
- `front`
- `back`
- `resize`
- `clear`
- `erase`
- `eraseFront`
- `eraseBack`
- `capacity`
- `computeGenerousCapacity`
- `insert`
- `insertValue`
- `replace`

### Interface Functions Inherited From TextConcept

- `stringSetLimits`
- `posLocalToX`
- `posLocalize`
- `posGlobalize`
- `getSeqNo`
- `getSeqOffset`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From StringSet

- `Concatenator`
- `GetSequenceByNo`
- `Id`
- `LengthSum`
- `StringSetPosition`

### Interface Metafunctions Inherited From ContainerConcept

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

### Interface Metafunctions Inherited From SegmentableConcept

- `Infix`
- `Prefix`
- `Suffix`

### Interface Metafunctions Inherited From TextConcept

- `SAValue`
- `StringSetLimits`

## Member Variable Overview

- `TConcatenator ConcatDirectStringSet::concat`
  The concatenation string. Concatenates all sequences of the StringSet without gaps.

## Detailed Description

Storing multiple strings in one larger one with storing the positions between strings leads to a very compact representation with a predictable memory layout.

At the moment, ConcatDirect StringSet objects only support appending data.

## Member Variables Detail

### `TConcatenator ConcatDirectStringSet::concat`

The concatenation string. Concatenates all sequences of the StringSet without gaps.

#### Dox Sources

    /*!
     * @class ConcatDirectStringSet ConcatDirect StringSet
     *
     * @extends OwnerStringSet
     *
     * @headerfile <seqan/sequence.h>
     *
     * @brief Owner StringSet implementation that stores strings in one large
     *        underlying string.
     *
     * @signature template <typename TString> class StringSet<TString,
     *            Owner<ConcatDirect> >;
     *
     * @tparam TString The type of the string to store in the string set.
     *
     * Storing multiple strings in one larger one with storing the positions between
     * strings leads to a very compact representation with a predictable memory
     * layout.
     *
     * At the moment, ConcatDirect StringSet objects only support appending data.
     *
     * @var TConcatenator ConcatDirectStringSet::concat;
     *
     * @brief The concatenation string. Concatenates all sequences of the StringSet
     *        without gaps.
     */