# `string_trie_e_access_traits` Interface

Element access traits for string types.

Defined in: `trie_policy.hpp`

## Template Parameters

Parameter | Description | Default Value

    class String

String type.

`std::string`

    typename String::value_type Min_E_Val

Minimal element.

`SCHAR_MIN`

    typename String::value_type Max_E_Val

Maximal element.

`SCHAR_MAX`

    bool Reverse

Indicates whether reverse iteration should be used.

`false`

    class Allocator

Allocator type.

    std::allocator<char>

## Public Types and Constants

### General Definitions

Type | Definition | Description

    size_type

    typename Allocator::size_type

Size type.

### Key-Type Definitions

Type | Definition | Description

    key_type

    String

Key type.

    const_key_reference

    typename Allocator::template rebind<
        key_type>::other::const_reference

Const key reference type.

### Element-Type Definitions

Type | Definition | Description

    reverse

    Reverse

`Reverse` iteration indicator.

    const_iterator

    typename __gnu_pbds::detail::__conditional_type<
        Reverse,
        typename String::const_reverse_iterator,
        typename String::const_iterator>::__type

Element `const` iterator type.

    e_type

    typename std::iterator_traits<const_iterator>::value_type

Element type.

    min_e_val

    Min_E_Val

Minimal element.

    max_e_val

    Max_E_Val

Maximal element.

    max_size

    max_e_val - min_e_val + 1

Number of distinct elements.

## Public Methods

### Access Methods

Method | Description

    inline static const_iterator
      begin
      (const_key_reference r_key)

Returns a `const_iterator` to the first element of `r_key`.

    inline static const_iterator
      end
      (const_key_reference r_key)

Returns a `const_iterator` to the after-last element of `r_key`.

    inline static size_type
      e_pos
      (e_type e)

Maps an `e`element to a position.