blob: 85c84b5be4ffcbcff60f6d5417a10bdfab846c95 [file] [log] [blame]
.. 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)