**Category**: containers

**Component type**: concept

A Forward Container is a Container whose elements are arranged in a definite order: the ordering will not change spontaneously from iteration to iteration. The requirement of a definite ordering allows the definition of element-by-element equality (if the container's element type is Equality Comparable) and of lexicographical ordering (if the container's element type is LessThan Comparable).

Iterators into a Forward Container satisfy the Forward Iterator requirements; consequently, Forward Containers support multipass algorithms and allow multiple iterators into the same container to be active at the same time.

Container, Equality Comparable, LessThan Comparable

No additional types beyond those defined in Container. However, the requirements for the iterator type are strengthened: the iterator type must be a model of Forward Iterator.

`X` | A type that is a model of Forward Container |

`a` , `b` | Object of type `X` |

`T` | The value type of `X` |

In addition to the expressions defined in Container, Equality Comparable, and LessThan Comparable, the following expressions must be valid.

Name | Expression | Type requirements | Return type |
---|---|---|---|

Equality | `a == b` | `T` is Equality Comparable | Convertible to `bool` |

Inequality | `a != b` | `T` is Equality Comparable | Convertible to `bool` |

Less | `a < b` | `T` is LessThan Comparable | Convertible to `bool` |

Greater | `a > b` | `T` is LessThan Comparable | Convertible to `bool` |

Less or equal | `a <= b` | `T` is LessThan Comparable | Convertible to `bool` |

Greater or equal | `a >= b` | `T` is LessThan Comparable | Convertible to `bool` |

Semantics of an expression is defined only where it is not defined in Container, Equality Comparable, or LessThan Comparable, or where there is additional information.

Name | Expression | Precondition | Semantics | Postcondition |
---|---|---|---|---|

Equality | `a == b` | Returns `true` if `a.size() == b.size()` and if each element of `a` compares equal to the corresponding element of `b` . Otherwise returns `false` . | ||

Less | `a < b` | Equivalent to `lexicographical_compare(a,b)` |

The equality and inequality operations are linear in the container's size.

Ordering | Two different iterations through a forward container will access its elements in the same order, providing that there have been no intervening mutative operations. |

- IndexedSkipList
- IndexedSSkipList
- IndexedTinySkipList
- SkipList
- SSkipList
- KeyedSkipList
- KeyedSSkipList
- AutoSkipList
- AutoSSkipList
- AutoKeyedSkipList
- AutoKeyedSSkipList
- MultiSkipList
- MultiSSkipList
- MultiKeyedSkipList
- MultiKeyedSSkipList
- MultiAutoSkipList
- MultiAutoSSkipList
- MultiAutoKeyedSkipList
- MultiAutoKeyedSSkipList
- XIndexedSkipList
- XMultiSkipList
- XMultiAutoSkipList
- AccessSkipList
- AccessSSkipList
- AutoAccessSkipList
- AutoAccessSSkipList
- MultiAccessSkipList
- MultiAccessSSkipList
- MultiAutoAccessSkipList
- MultiAutoAccessSSkipList
- XMultiAccessSkipList
- XMultiAutoAccessSkipList

Generated on Thu Jan 6 2011 15:52:42 for SkipList Library by 1.7.3