| Home | Libraries | People | FAQ | More

#### Associative Iterator

###### Description

An Associative Iterator provides additional semantics to obtain the properties of the element of an associative forward, bidirectional or random access sequence.

Notation

`i`

  Associative Iterator

`I`

  Associative Iterator type

###### Refinement of

Forward Iterator, Bidirectional Iterator or Random Access Iterator

###### Expression requirements

In addition to the requirements defined in Forward Iterator, Bidirectional Iterator or Random Access Iterator the following expressions must be valid:

Expression | Return type | Runtime Complexity
--- | --- | ---
``deref_data`(i)` | ``result_of::deref_data`<I>::type` | Constant

###### Meta Expressions

Expression | Compile Time Complexity
--- | ---
``result_of::key_of`<I>::type` | Amortized constant time
``result_of::value_of_data`<I>::type` | Amortized constant time
``result_of::deref_data`<I>::type` | Amortized constant time

###### Models

- `map` iterator
- `set` iterator
- `filter_view` iterator (where adapted sequence is an Associative Sequence and a Forward Sequence)
- `iterator_range` iterator (where adapted iterators are Associative Iterators)
- `joint_view` iterator (where adapted sequences are Associative Sequences and Forward Sequences)
- `reverse_view` iterator (where adapted sequence is an Associative Sequence and a Bidirectional Sequence)
- `transform_view` iterator (where adapted sequence is an Associative Sequence and a Forward Sequence)