.. Sequences/Concepts//Random Access Sequence |30

Random Access Sequence
======================

Description
-----------

A |Random Access Sequence| is a |Bidirectional Sequence| whose iterators model
|Random Access Iterator|. A random access sequence guarantees amortized constant 
time access to an arbitrary sequence element. 

Refinement of
-------------

|Bidirectional Sequence|


Expression requirements
-----------------------

In addition to the requirements defined in |Bidirectional Sequence|, 
for any |Random Access Sequence| ``s`` the following must be met:

+---------------------------+-----------------------------------+---------------------------+
| Expression                | Type                              | Complexity                |
+===========================+===================================+===========================+
| ``begin<s>::type``        | |Random Access Iterator|          | Amortized constant time   |
+---------------------------+-----------------------------------+---------------------------+
| ``end<s>::type``          | |Random Access Iterator|          | Amortized constant time   |
+---------------------------+-----------------------------------+---------------------------+
| ``at<s,n>::type``         | Any type                          | Amortized constant time   |
+---------------------------+-----------------------------------+---------------------------+


Expression semantics
--------------------

Semantics of an expression is defined only where it differs from, or is not 
defined in |Bidirectional Sequence|.

+---------------------------+-----------------------------------------------------------------------+
| Expression                | Semantics                                                             |
+===========================+=======================================================================+
| ``at<s,n>::type``         | The ``n``\ th element from the beginning of the sequence; see |at|.   |
+---------------------------+-----------------------------------------------------------------------+


Models
------

* |vector|
* |range_c|


See also
--------

|Sequences|, |Bidirectional Sequence|, |Extensible Sequence|, |Random Access Iterator|, 
|begin| / |end|, |at|


.. copyright:: Copyright ©  2001-2009 Aleksey Gurtovoy and David Abrahams
   Distributed under the Boost Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
