• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Random Access Iterator</title>
5<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="../../../index.html" title="Chapter 1. Fusion 2.2">
8<link rel="up" href="../concepts.html" title="Concepts">
9<link rel="prev" href="bidirectional_iterator.html" title="Bidirectional Iterator">
10<link rel="next" href="associative_iterator.html" title="Associative Iterator">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13<table cellpadding="2" width="100%"><tr>
14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
15<td align="center"><a href="../../../../../../../index.html">Home</a></td>
16<td align="center"><a href="../../../../../../../libs/libraries.htm">Libraries</a></td>
17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
20</tr></table>
21<hr>
22<div class="spirit-nav">
23<a accesskey="p" href="bidirectional_iterator.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="associative_iterator.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section">
26<div class="titlepage"><div><div><h4 class="title">
27<a name="fusion.iterator.concepts.random_access_iterator"></a><a class="link" href="random_access_iterator.html" title="Random Access Iterator">Random
28        Access Iterator</a>
29</h4></div></div></div>
30<h6>
31<a name="fusion.iterator.concepts.random_access_iterator.h0"></a>
32          <span class="phrase"><a name="fusion.iterator.concepts.random_access_iterator.description"></a></span><a class="link" href="random_access_iterator.html#fusion.iterator.concepts.random_access_iterator.description">Description</a>
33        </h6>
34<p>
35          A Random Access Iterator traverses a <a class="link" href="../../sequence.html" title="Sequence">Sequence</a>
36          moving in either direction, permitting efficient arbitrary distance movements
37          back and forward through the sequence.
38        </p>
39<div class="variablelist">
40<p class="title"><b>Notation</b></p>
41<dl class="variablelist">
42<dt><span class="term"><code class="computeroutput"><span class="identifier">i</span></code>, <code class="computeroutput"><span class="identifier">j</span></code></span></dt>
43<dd><p>
44                Random Access Iterators
45              </p></dd>
46<dt><span class="term"><code class="computeroutput"><span class="identifier">I</span></code>, <code class="computeroutput"><span class="identifier">J</span></code></span></dt>
47<dd><p>
48                Random Access Iterator types
49              </p></dd>
50<dt><span class="term"><code class="computeroutput"><span class="identifier">M</span></code></span></dt>
51<dd><p>
52                An <a href="http://www.boost.org/libs/mpl" target="_top">MPL</a> integral
53                constant
54              </p></dd>
55<dt><span class="term"><code class="computeroutput"><span class="identifier">N</span></code></span></dt>
56<dd><p>
57                An integral constant
58              </p></dd>
59</dl>
60</div>
61<h6>
62<a name="fusion.iterator.concepts.random_access_iterator.h1"></a>
63          <span class="phrase"><a name="fusion.iterator.concepts.random_access_iterator.refinement_of"></a></span><a class="link" href="random_access_iterator.html#fusion.iterator.concepts.random_access_iterator.refinement_of">Refinement
64          of</a>
65        </h6>
66<p>
67          <a class="link" href="bidirectional_iterator.html" title="Bidirectional Iterator">Bidirectional
68          Iterator</a>
69        </p>
70<h6>
71<a name="fusion.iterator.concepts.random_access_iterator.h2"></a>
72          <span class="phrase"><a name="fusion.iterator.concepts.random_access_iterator.expression_requirements"></a></span><a class="link" href="random_access_iterator.html#fusion.iterator.concepts.random_access_iterator.expression_requirements">Expression
73          requirements</a>
74        </h6>
75<p>
76          In addition to the requirements defined in <a class="link" href="bidirectional_iterator.html" title="Bidirectional Iterator">Bidirectional
77          Iterator</a>, the following expressions must be valid:
78        </p>
79<div class="informaltable"><table class="table">
80<colgroup>
81<col>
82<col>
83<col>
84</colgroup>
85<thead><tr>
86<th>
87                  <p>
88                    Expression
89                  </p>
90                </th>
91<th>
92                  <p>
93                    Return type
94                  </p>
95                </th>
96<th>
97                  <p>
98                    Runtime Complexity
99                  </p>
100                </th>
101</tr></thead>
102<tbody>
103<tr>
104<td>
105                  <p>
106                    <code class="computeroutput"><a class="link" href="../functions/next.html" title="next"><code class="computeroutput"><span class="identifier">next</span></code></a><span class="special">(</span><span class="identifier">i</span><span class="special">)</span></code>
107                  </p>
108                </td>
109<td>
110                  <p>
111                    <a class="link" href="random_access_iterator.html" title="Random Access Iterator">Random
112                    Access Iterator</a>
113                  </p>
114                </td>
115<td>
116                  <p>
117                    Constant
118                  </p>
119                </td>
120</tr>
121<tr>
122<td>
123                  <p>
124                    <code class="computeroutput"><a class="link" href="../functions/prior.html" title="prior"><code class="computeroutput"><span class="identifier">prior</span></code></a><span class="special">(</span><span class="identifier">i</span><span class="special">)</span></code>
125                  </p>
126                </td>
127<td>
128                  <p>
129                    <a class="link" href="random_access_iterator.html" title="Random Access Iterator">Random
130                    Access Iterator</a>
131                  </p>
132                </td>
133<td>
134                  <p>
135                    Constant
136                  </p>
137                </td>
138</tr>
139<tr>
140<td>
141                  <p>
142                    <code class="computeroutput"><a class="link" href="../functions/advance_c.html" title="advance_c"><code class="computeroutput"><span class="identifier">advance_c</span></code></a><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;(</span><span class="identifier">i</span><span class="special">)</span></code>
143                  </p>
144                </td>
145<td>
146                  <p>
147                    <a class="link" href="random_access_iterator.html" title="Random Access Iterator">Random
148                    Access Iterator</a>
149                  </p>
150                </td>
151<td>
152                  <p>
153                    Constant
154                  </p>
155                </td>
156</tr>
157<tr>
158<td>
159                  <p>
160                    <code class="computeroutput"><a class="link" href="../functions/advance.html" title="advance"><code class="computeroutput"><span class="identifier">advance</span></code></a><span class="special">&lt;</span><span class="identifier">M</span><span class="special">&gt;(</span><span class="identifier">i</span><span class="special">)</span></code>
161                  </p>
162                </td>
163<td>
164                  <p>
165                    <a class="link" href="random_access_iterator.html" title="Random Access Iterator">Random
166                    Access Iterator</a>
167                  </p>
168                </td>
169<td>
170                  <p>
171                    Constant
172                  </p>
173                </td>
174</tr>
175</tbody>
176</table></div>
177<h6>
178<a name="fusion.iterator.concepts.random_access_iterator.h3"></a>
179          <span class="phrase"><a name="fusion.iterator.concepts.random_access_iterator.meta_expressions"></a></span><a class="link" href="random_access_iterator.html#fusion.iterator.concepts.random_access_iterator.meta_expressions">Meta
180          Expressions</a>
181        </h6>
182<div class="informaltable"><table class="table">
183<colgroup>
184<col>
185<col>
186</colgroup>
187<thead><tr>
188<th>
189                  <p>
190                    Expression
191                  </p>
192                </th>
193<th>
194                  <p>
195                    Compile Time Complexity
196                  </p>
197                </th>
198</tr></thead>
199<tbody>
200<tr>
201<td>
202                  <p>
203                    <code class="computeroutput"><a class="link" href="../metafunctions/advance_c.html" title="advance_c"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">advance_c</span></code></a><span class="special">&lt;</span><span class="identifier">I</span><span class="special">,</span>
204                    <span class="identifier">N</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
205                  </p>
206                </td>
207<td>
208                  <p>
209                    Amortized constant time
210                  </p>
211                </td>
212</tr>
213<tr>
214<td>
215                  <p>
216                    <code class="computeroutput"><a class="link" href="../metafunctions/advance.html" title="advance"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">advance</span></code></a><span class="special">&lt;</span><span class="identifier">I</span><span class="special">,</span>
217                    <span class="identifier">M</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
218                  </p>
219                </td>
220<td>
221                  <p>
222                    Amortized constant time
223                  </p>
224                </td>
225</tr>
226<tr>
227<td>
228                  <p>
229                    <code class="computeroutput"><a class="link" href="../metafunctions/distance.html" title="distance"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">distance</span></code></a><span class="special">&lt;</span><span class="identifier">I</span> <span class="special">,</span><span class="identifier">J</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
230                  </p>
231                </td>
232<td>
233                  <p>
234                    Amortized constant time
235                  </p>
236                </td>
237</tr>
238</tbody>
239</table></div>
240<h6>
241<a name="fusion.iterator.concepts.random_access_iterator.h4"></a>
242          <span class="phrase"><a name="fusion.iterator.concepts.random_access_iterator.models"></a></span><a class="link" href="random_access_iterator.html#fusion.iterator.concepts.random_access_iterator.models">Models</a>
243        </h6>
244<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
245<li class="listitem">
246              <a class="link" href="../../container/vector.html" title="vector"><code class="computeroutput"><span class="identifier">vector</span></code></a>
247              iterator
248            </li>
249<li class="listitem">
250              <a class="link" href="../../container/map.html" title="map"><code class="computeroutput"><span class="identifier">map</span></code></a>
251              iterator
252            </li>
253<li class="listitem">
254              <a class="link" href="../../adapted/std__pair.html" title="std::pair"><code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code></a>
255              iterator
256            </li>
257<li class="listitem">
258              <a class="link" href="../../adapted/boost__array.html" title="boost::array"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code></a>
259              iterator
260            </li>
261<li class="listitem">
262              <a class="link" href="../../view/single_view.html" title="single_view"><code class="computeroutput"><span class="identifier">single_view</span></code></a>
263              iterator
264            </li>
265<li class="listitem">
266              <a class="link" href="../../view/iterator_range.html" title="iterator_range"><code class="computeroutput"><span class="identifier">iterator_range</span></code></a>
267              iterator (where adapted sequence is a <a class="link" href="../../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
268              Access Sequence</a>)
269            </li>
270<li class="listitem">
271              <a class="link" href="../../view/transform_view.html" title="transform_view"><code class="computeroutput"><span class="identifier">transform_view</span></code></a>
272              iterator (where adapted sequence is a <a class="link" href="../../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
273              Access Sequence</a>)
274            </li>
275<li class="listitem">
276              <a class="link" href="../../view/reverse_view.html" title="reverse_view"><code class="computeroutput"><span class="identifier">reverse_view</span></code></a>
277              iterator (where adapted sequence is a <a class="link" href="../../sequence/concepts/random_access_sequence.html" title="Random Access Sequence">Random
278              Access Sequence</a>)
279            </li>
280</ul></div>
281</div>
282<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
283<td align="left"></td>
284<td align="right"><div class="copyright-footer">Copyright © 2001-2006, 2011, 2012 Joel de Guzman,
285      Dan Marsden, Tobias Schwinger<p>
286        Distributed under the Boost Software License, Version 1.0. (See accompanying
287        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
288      </p>
289</div></td>
290</tr></table>
291<hr>
292<div class="spirit-nav">
293<a accesskey="p" href="bidirectional_iterator.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="associative_iterator.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
294</div>
295</body>
296</html>
297