• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Algorithm</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. Phoenix 3.2.0">
8<link rel="up" href="../stl.html" title="STL">
9<link rel="prev" href="container.html" title="Container">
10<link rel="next" href="../../inside.html" title="Inside Phoenix">
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="container.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../stl.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="../../inside.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="phoenix.modules.stl.algorithm"></a><a class="link" href="algorithm.html" title="Algorithm">Algorithm</a>
28</h4></div></div></div>
29<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
30</pre>
31<p>
32          The algorithm module provides wrappers for the standard algorithms in the
33          <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">algorithm</span><span class="special">&gt;</span></code> and <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">numeric</span><span class="special">&gt;</span></code>
34          headers.
35        </p>
36<p>
37          The algorithms are divided into the categories iteration, transformation
38          and querying, modeling the <a href="http://boost.org/libs/mpl/doc/index.html" target="_top">Boost.MPL</a>
39          library. The different algorithm classes can be included using the headers:
40        </p>
41<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">iteration</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
42<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transformation</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
43<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">phoenix</span><span class="special">/</span><span class="identifier">stl</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">querying</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
44</pre>
45<p>
46          The functions of the algorithm module take ranges as arguments where appropriate.
47          This is different to the standard library, but easy enough to pick up.
48          Ranges are described in detail in the <a href="http://boost.org/libs/range/index.html" target="_top">Boost.Range</a>
49          library.
50        </p>
51<p>
52          For example, using the standard copy algorithm to copy between 2 arrays:
53        </p>
54<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">array</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span><span class="number">1</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">3</span><span class="special">};</span>
55<span class="keyword">int</span> <span class="identifier">output</span><span class="special">[</span><span class="number">3</span><span class="special">];</span>
56<span class="identifier">std</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">array</span><span class="special">,</span> <span class="identifier">array</span> <span class="special">+</span> <span class="number">3</span><span class="special">,</span> <span class="identifier">output</span><span class="special">);</span> <span class="comment">// We have to provide iterators</span>
57                                     <span class="comment">// to both the start and end of array</span>
58</pre>
59<p>
60          The analogous code using the phoenix algorithm module is:
61        </p>
62<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">array</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span><span class="number">1</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">3</span><span class="special">};</span>
63<span class="keyword">int</span> <span class="identifier">output</span><span class="special">[</span><span class="number">3</span><span class="special">];</span>
64<span class="identifier">copy</span><span class="special">(</span><span class="identifier">arg1</span><span class="special">,</span> <span class="identifier">arg2</span><span class="special">)(</span><span class="identifier">array</span><span class="special">,</span> <span class="identifier">output</span><span class="special">);</span> <span class="comment">// Notice only 2 arguments, the end of</span>
65                                 <span class="comment">// array is established automatically</span>
66</pre>
67<p>
68          The <a href="http://boost.org/libs/range/index.html" target="_top">Boost.Range</a>
69          library provides support for standard containers, strings and arrays, and
70          can be extended to support additional types.
71        </p>
72<p>
73          The following tables describe the different categories of algorithms, and
74          their semantics.
75        </p>
76<div class="blurb">
77<div class="titlepage"><div><div><p class="title"><b></b></p></div></div></div>
78<p>
79          <span class="inlinemediaobject"><img src="../../../images/tip.png"></span>
80          Arguments in brackets denote optional parameters.
81        </p>
82</div>
83<div class="table">
84<a name="phoenix.modules.stl.algorithm.t0"></a><p class="title"><b>Table 1.6. Iteration Algorithms</b></p>
85<div class="table-contents"><table class="table" summary="Iteration Algorithms">
86<colgroup>
87<col>
88<col>
89</colgroup>
90<thead><tr>
91<th>
92                  <p>
93                    Function
94                  </p>
95                </th>
96<th>
97                  <p>
98                    stl Semantics
99                  </p>
100                </th>
101</tr></thead>
102<tbody>
103<tr>
104<td>
105                  <p>
106                    <code class="computeroutput"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
107                    <span class="identifier">f</span><span class="special">)</span></code>
108                  </p>
109                </td>
110<td>
111                  <p>
112                    <code class="computeroutput"><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
113                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
114                    <span class="identifier">f</span><span class="special">)</span></code>
115                  </p>
116                </td>
117</tr>
118<tr>
119<td>
120                  <p>
121                    <code class="computeroutput"><span class="identifier">accumulate</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
122                    <span class="identifier">o</span><span class="special">[,</span>
123                    <span class="identifier">f</span><span class="special">])</span></code>
124                  </p>
125                </td>
126<td>
127                  <p>
128                    <code class="computeroutput"><span class="identifier">accumulate</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
129                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
130                    <span class="identifier">o</span><span class="special">[,</span>
131                    <span class="identifier">f</span><span class="special">])</span></code>
132                  </p>
133                </td>
134</tr>
135</tbody>
136</table></div>
137</div>
138<br class="table-break"><div class="table">
139<a name="phoenix.modules.stl.algorithm.t1"></a><p class="title"><b>Table 1.7. Querying Algorithms</b></p>
140<div class="table-contents"><table class="table" summary="Querying Algorithms">
141<colgroup>
142<col>
143<col>
144</colgroup>
145<thead><tr>
146<th>
147                  <p>
148                    Function
149                  </p>
150                </th>
151<th>
152                  <p>
153                    stl Semantics
154                  </p>
155                </th>
156</tr></thead>
157<tbody>
158<tr>
159<td>
160                  <p>
161                    <code class="computeroutput"><span class="identifier">find</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
162                    <span class="identifier">a</span><span class="special">)</span></code>
163                  </p>
164                </td>
165<td>
166                  <p>
167                    <code class="computeroutput"><span class="identifier">find</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
168                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
169                    <span class="identifier">a</span><span class="special">)</span></code>
170                  </p>
171                </td>
172</tr>
173<tr>
174<td>
175                  <p>
176                    <code class="computeroutput"><span class="identifier">find_if</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
177                    <span class="identifier">f</span><span class="special">)</span></code>
178                  </p>
179                </td>
180<td>
181                  <p>
182                    <code class="computeroutput"><span class="identifier">find_if</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
183                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
184                    <span class="identifier">f</span><span class="special">)</span></code>
185                  </p>
186                </td>
187</tr>
188<tr>
189<td>
190                  <p>
191                    <code class="computeroutput"><span class="identifier">find_end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span>
192                    <span class="identifier">r2</span><span class="special">[,</span>
193                    <span class="identifier">f</span><span class="special">])</span></code>
194                  </p>
195                </td>
196<td>
197                  <p>
198                    <code class="computeroutput"><span class="identifier">find_end</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
199                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
200                    <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span>
201                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span>
202                    <span class="identifier">f</span><span class="special">])</span></code>
203                  </p>
204                </td>
205</tr>
206<tr>
207<td>
208                  <p>
209                    <code class="computeroutput"><span class="identifier">find_first_of</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span> <span class="identifier">r2</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
210                  </p>
211                </td>
212<td>
213                  <p>
214                    <code class="computeroutput"><span class="identifier">find_first_of</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
215                  </p>
216                </td>
217</tr>
218<tr>
219<td>
220                  <p>
221                    <code class="computeroutput"><span class="identifier">adjacent_find</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
222                  </p>
223                </td>
224<td>
225                  <p>
226                    <code class="computeroutput"><span class="identifier">adjacent_find</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
227                  </p>
228                </td>
229</tr>
230<tr>
231<td>
232                  <p>
233                    <code class="computeroutput"><span class="identifier">count</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
234                    <span class="identifier">a</span><span class="special">)</span></code>
235                  </p>
236                </td>
237<td>
238                  <p>
239                    <code class="computeroutput"><span class="identifier">count</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
240                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
241                    <span class="identifier">a</span><span class="special">)</span></code>
242                  </p>
243                </td>
244</tr>
245<tr>
246<td>
247                  <p>
248                    <code class="computeroutput"><span class="identifier">count_if</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
249                    <span class="identifier">f</span><span class="special">)</span></code>
250                  </p>
251                </td>
252<td>
253                  <p>
254                    <code class="computeroutput"><span class="identifier">count_if</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
255                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
256                    <span class="identifier">f</span><span class="special">)</span></code>
257                  </p>
258                </td>
259</tr>
260<tr>
261<td>
262                  <p>
263                    <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>
264                  </p>
265                </td>
266<td>
267                  <p>
268                    <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
269                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">))</span></code>
270                  </p>
271                </td>
272</tr>
273<tr>
274<td>
275                  <p>
276                    <code class="computeroutput"><span class="identifier">mismatch</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
277                    <span class="identifier">i</span><span class="special">[,</span>
278                    <span class="identifier">f</span><span class="special">])</span></code>
279                  </p>
280                </td>
281<td>
282                  <p>
283                    <code class="computeroutput"><span class="identifier">mismatch</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
284                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
285                    <span class="identifier">i</span><span class="special">[,</span>
286                    <span class="identifier">f</span><span class="special">])</span></code>
287                  </p>
288                </td>
289</tr>
290<tr>
291<td>
292                  <p>
293                    <code class="computeroutput"><span class="identifier">equal</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
294                    <span class="identifier">i</span><span class="special">[,</span>
295                    <span class="identifier">f</span><span class="special">])</span></code>
296                  </p>
297                </td>
298<td>
299                  <p>
300                    <code class="computeroutput"><span class="identifier">equal</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
301                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
302                    <span class="identifier">i</span><span class="special">[,</span>
303                    <span class="identifier">f</span><span class="special">])</span></code>
304                  </p>
305                </td>
306</tr>
307<tr>
308<td>
309                  <p>
310                    <code class="computeroutput"><span class="identifier">search</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span>
311                    <span class="identifier">r2</span><span class="special">[,</span>
312                    <span class="identifier">f</span><span class="special">])</span></code>
313                  </p>
314                </td>
315<td>
316                  <p>
317                    <code class="computeroutput"><span class="identifier">search</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
318                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
319                    <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span>
320                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span>
321                    <span class="identifier">f</span><span class="special">])</span></code>
322                  </p>
323                </td>
324</tr>
325<tr>
326<td>
327                  <p>
328                    <code class="computeroutput"><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
329                    <span class="identifier">a</span><span class="special">[,</span>
330                    <span class="identifier">f</span><span class="special">])</span></code>
331                  </p>
332                </td>
333<td>
334                  <p>
335                    <code class="computeroutput"><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
336                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
337                    <span class="identifier">a</span><span class="special">[,</span>
338                    <span class="identifier">f</span><span class="special">])</span></code>
339                  </p>
340                </td>
341</tr>
342<tr>
343<td>
344                  <p>
345                    <code class="computeroutput"><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
346                    <span class="identifier">a</span><span class="special">[,</span>
347                    <span class="identifier">f</span><span class="special">])</span></code>
348                  </p>
349                </td>
350<td>
351                  <p>
352                    <code class="computeroutput"><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
353                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
354                    <span class="identifier">a</span><span class="special">[,</span>
355                    <span class="identifier">f</span><span class="special">])</span></code>
356                  </p>
357                </td>
358</tr>
359<tr>
360<td>
361                  <p>
362                    <code class="computeroutput"><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
363                    <span class="identifier">a</span><span class="special">[,</span>
364                    <span class="identifier">f</span><span class="special">])</span></code>
365                  </p>
366                </td>
367<td>
368                  <p>
369                    <code class="computeroutput"><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
370                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
371                    <span class="identifier">a</span><span class="special">[,</span>
372                    <span class="identifier">f</span><span class="special">])</span></code>
373                  </p>
374                </td>
375</tr>
376<tr>
377<td>
378                  <p>
379                    <code class="computeroutput"><span class="identifier">binary_search</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">a</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
380                  </p>
381                </td>
382<td>
383                  <p>
384                    <code class="computeroutput"><span class="identifier">binary_search</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">a</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
385                  </p>
386                </td>
387</tr>
388<tr>
389<td>
390                  <p>
391                    <code class="computeroutput"><span class="identifier">includes</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span>
392                    <span class="identifier">r2</span><span class="special">[,</span>
393                    <span class="identifier">f</span><span class="special">])</span></code>
394                  </p>
395                </td>
396<td>
397                  <p>
398                    <code class="computeroutput"><span class="identifier">includes</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
399                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
400                    <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span>
401                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span>
402                    <span class="identifier">f</span><span class="special">])</span></code>
403                  </p>
404                </td>
405</tr>
406<tr>
407<td>
408                  <p>
409                    <code class="computeroutput"><span class="identifier">min_element</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
410                    <span class="identifier">f</span><span class="special">])</span></code>
411                  </p>
412                </td>
413<td>
414                  <p>
415                    <code class="computeroutput"><span class="identifier">min_element</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
416                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
417                    <span class="identifier">f</span><span class="special">])</span></code>
418                  </p>
419                </td>
420</tr>
421<tr>
422<td>
423                  <p>
424                    <code class="computeroutput"><span class="identifier">max_element</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
425                    <span class="identifier">f</span><span class="special">])</span></code>
426                  </p>
427                </td>
428<td>
429                  <p>
430                    <code class="computeroutput"><span class="identifier">max_element</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
431                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
432                    <span class="identifier">f</span><span class="special">])</span></code>
433                  </p>
434                </td>
435</tr>
436<tr>
437<td>
438                  <p>
439                    <code class="computeroutput"><span class="identifier">lexicographical_compare</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span> <span class="identifier">r2</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
440                  </p>
441                </td>
442<td>
443                  <p>
444                    <code class="computeroutput"><span class="identifier">lexicographical_compare</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
445                  </p>
446                </td>
447</tr>
448</tbody>
449</table></div>
450</div>
451<br class="table-break"><div class="table">
452<a name="phoenix.modules.stl.algorithm.t2"></a><p class="title"><b>Table 1.8. Transformation Algorithms</b></p>
453<div class="table-contents"><table class="table" summary="Transformation Algorithms">
454<colgroup>
455<col>
456<col>
457<col>
458</colgroup>
459<thead><tr>
460<th>
461                  <p>
462                    Function
463                  </p>
464                </th>
465<th>
466                  <p>
467                    stl Semantics
468                  </p>
469                </th>
470<th>
471                  <p>
472                    Language Standards
473                  </p>
474                </th>
475</tr></thead>
476<tbody>
477<tr>
478<td>
479                  <p>
480                    <code class="computeroutput"><span class="identifier">copy</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
481                    <span class="identifier">o</span><span class="special">)</span></code>
482                  </p>
483                </td>
484<td>
485                  <p>
486                    <code class="computeroutput"><span class="identifier">copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
487                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
488                    <span class="identifier">o</span><span class="special">)</span></code>
489                  </p>
490                </td>
491<td>
492                </td>
493</tr>
494<tr>
495<td>
496                  <p>
497                    <code class="computeroutput"><span class="identifier">copy_backward</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">)</span></code>
498                  </p>
499                </td>
500<td>
501                  <p>
502                    <code class="computeroutput"><span class="identifier">copy_backward</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">)</span></code>
503                  </p>
504                </td>
505<td>
506                </td>
507</tr>
508<tr>
509<td>
510                  <p>
511                    <code class="computeroutput"><span class="identifier">transform</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
512                    <span class="identifier">o</span><span class="special">,</span>
513                    <span class="identifier">f</span><span class="special">)</span></code>
514                  </p>
515                </td>
516<td>
517                  <p>
518                    <code class="computeroutput"><span class="identifier">transform</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
519                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
520                    <span class="identifier">o</span><span class="special">,</span>
521                    <span class="identifier">f</span><span class="special">)</span></code>
522                  </p>
523                </td>
524<td>
525                </td>
526</tr>
527<tr>
528<td>
529                  <p>
530                    <code class="computeroutput"><span class="identifier">transform</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
531                    <span class="identifier">i</span><span class="special">,</span>
532                    <span class="identifier">o</span><span class="special">,</span>
533                    <span class="identifier">f</span><span class="special">)</span></code>
534                  </p>
535                </td>
536<td>
537                  <p>
538                    <code class="computeroutput"><span class="identifier">transform</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
539                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
540                    <span class="identifier">i</span><span class="special">,</span>
541                    <span class="identifier">o</span><span class="special">,</span>
542                    <span class="identifier">f</span><span class="special">)</span></code>
543                  </p>
544                </td>
545<td>
546                </td>
547</tr>
548<tr>
549<td>
550                  <p>
551                    <code class="computeroutput"><span class="identifier">replace</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
552                    <span class="identifier">a</span><span class="special">,</span>
553                    <span class="identifier">b</span><span class="special">)</span></code>
554                  </p>
555                </td>
556<td>
557                  <p>
558                    <code class="computeroutput"><span class="identifier">replace</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
559                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
560                    <span class="identifier">a</span><span class="special">,</span>
561                    <span class="identifier">b</span><span class="special">)</span></code>
562                  </p>
563                </td>
564<td>
565                </td>
566</tr>
567<tr>
568<td>
569                  <p>
570                    <code class="computeroutput"><span class="identifier">replace_if</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
571                    <span class="identifier">f</span><span class="special">,</span>
572                    <span class="identifier">a</span><span class="special">)</span></code>
573                  </p>
574                </td>
575<td>
576                  <p>
577                    <code class="computeroutput"><span class="identifier">replace</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
578                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
579                    <span class="identifier">f</span><span class="special">,</span>
580                    <span class="identifier">a</span><span class="special">)</span></code>
581                  </p>
582                </td>
583<td>
584                </td>
585</tr>
586<tr>
587<td>
588                  <p>
589                    <code class="computeroutput"><span class="identifier">replace_copy</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">)</span></code>
590                  </p>
591                </td>
592<td>
593                  <p>
594                    <code class="computeroutput"><span class="identifier">replace_copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">b</span><span class="special">)</span></code>
595                  </p>
596                </td>
597<td>
598                </td>
599</tr>
600<tr>
601<td>
602                  <p>
603                    <code class="computeroutput"><span class="identifier">replace_copy_if</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">a</span><span class="special">)</span></code>
604                  </p>
605                </td>
606<td>
607                  <p>
608                    <code class="computeroutput"><span class="identifier">replace_copy_if</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">f</span><span class="special">,</span> <span class="identifier">a</span><span class="special">)</span></code>
609                  </p>
610                </td>
611<td>
612                </td>
613</tr>
614<tr>
615<td>
616                  <p>
617                    <code class="computeroutput"><span class="identifier">fill</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
618                    <span class="identifier">a</span><span class="special">)</span></code>
619                  </p>
620                </td>
621<td>
622                  <p>
623                    <code class="computeroutput"><span class="identifier">fill</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
624                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
625                    <span class="identifier">a</span><span class="special">)</span></code>
626                  </p>
627                </td>
628<td>
629                </td>
630</tr>
631<tr>
632<td>
633                  <p>
634                    <code class="computeroutput"><span class="identifier">fill_n</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
635                    <span class="identifier">n</span><span class="special">,</span>
636                    <span class="identifier">a</span><span class="special">)</span></code>
637                  </p>
638                </td>
639<td>
640                  <p>
641                    <code class="computeroutput"><span class="identifier">fill_n</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
642                    <span class="identifier">n</span><span class="special">,</span>
643                    <span class="identifier">a</span><span class="special">)</span></code>
644                  </p>
645                </td>
646<td>
647                </td>
648</tr>
649<tr>
650<td>
651                  <p>
652                    <code class="computeroutput"><span class="identifier">generate</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
653                    <span class="identifier">f</span><span class="special">)</span></code>
654                  </p>
655                </td>
656<td>
657                  <p>
658                    <code class="computeroutput"><span class="identifier">generate</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
659                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
660                    <span class="identifier">f</span><span class="special">)</span></code>
661                  </p>
662                </td>
663<td>
664                </td>
665</tr>
666<tr>
667<td>
668                  <p>
669                    <code class="computeroutput"><span class="identifier">generate_n</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
670                    <span class="identifier">n</span><span class="special">,</span>
671                    <span class="identifier">f</span><span class="special">)</span></code>
672                  </p>
673                </td>
674<td>
675                  <p>
676                    <code class="computeroutput"><span class="identifier">generate_n</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
677                    <span class="identifier">n</span><span class="special">,</span>
678                    <span class="identifier">f</span><span class="special">)</span></code>
679                  </p>
680                </td>
681<td>
682                </td>
683</tr>
684<tr>
685<td>
686                  <p>
687                    <code class="computeroutput"><span class="identifier">remove</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
688                    <span class="identifier">a</span><span class="special">)</span></code>
689                  </p>
690                </td>
691<td>
692                  <p>
693                    <code class="computeroutput"><span class="identifier">remove</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
694                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
695                    <span class="identifier">a</span><span class="special">)</span></code>
696                  </p>
697                </td>
698<td>
699                </td>
700</tr>
701<tr>
702<td>
703                  <p>
704                    <code class="computeroutput"><span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
705                    <span class="identifier">f</span><span class="special">)</span></code>
706                  </p>
707                </td>
708<td>
709                  <p>
710                    <code class="computeroutput"><span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
711                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
712                    <span class="identifier">f</span><span class="special">)</span></code>
713                  </p>
714                </td>
715<td>
716                </td>
717</tr>
718<tr>
719<td>
720                  <p>
721                    <code class="computeroutput"><span class="identifier">remove_copy</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
722                    <span class="identifier">o</span><span class="special">,</span>
723                    <span class="identifier">a</span><span class="special">)</span></code>
724                  </p>
725                </td>
726<td>
727                  <p>
728                    <code class="computeroutput"><span class="identifier">remove_copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
729                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
730                    <span class="identifier">o</span><span class="special">,</span>
731                    <span class="identifier">a</span><span class="special">)</span></code>
732                  </p>
733                </td>
734<td>
735                </td>
736</tr>
737<tr>
738<td>
739                  <p>
740                    <code class="computeroutput"><span class="identifier">remove_copy_if</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">f</span><span class="special">)</span></code>
741                  </p>
742                </td>
743<td>
744                  <p>
745                    <code class="computeroutput"><span class="identifier">remove_copy_if</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">f</span><span class="special">)</span></code>
746                  </p>
747                </td>
748<td>
749                </td>
750</tr>
751<tr>
752<td>
753                  <p>
754                    <code class="computeroutput"><span class="identifier">unique</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
755                    <span class="identifier">f</span><span class="special">])</span></code>
756                  </p>
757                </td>
758<td>
759                  <p>
760                    <code class="computeroutput"><span class="identifier">unique</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
761                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
762                    <span class="identifier">f</span><span class="special">])</span></code>
763                  </p>
764                </td>
765<td>
766                </td>
767</tr>
768<tr>
769<td>
770                  <p>
771                    <code class="computeroutput"><span class="identifier">unique_copy</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
772                    <span class="identifier">o</span><span class="special">[,</span>
773                    <span class="identifier">f</span><span class="special">])</span></code>
774                  </p>
775                </td>
776<td>
777                  <p>
778                    <code class="computeroutput"><span class="identifier">unique_copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
779                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
780                    <span class="identifier">o</span><span class="special">[,</span>
781                    <span class="identifier">f</span><span class="special">])</span></code>
782                  </p>
783                </td>
784<td>
785                </td>
786</tr>
787<tr>
788<td>
789                  <p>
790                    <code class="computeroutput"><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>
791                  </p>
792                </td>
793<td>
794                  <p>
795                    <code class="computeroutput"><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
796                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">))</span></code>
797                  </p>
798                </td>
799<td>
800                </td>
801</tr>
802<tr>
803<td>
804                  <p>
805                    <code class="computeroutput"><span class="identifier">reverse_copy</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">)</span></code>
806                  </p>
807                </td>
808<td>
809                  <p>
810                    <code class="computeroutput"><span class="identifier">reverse_copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">)</span></code>
811                  </p>
812                </td>
813<td>
814                </td>
815</tr>
816<tr>
817<td>
818                  <p>
819                    <code class="computeroutput"><span class="identifier">rotate</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
820                    <span class="identifier">m</span><span class="special">)</span></code>
821                  </p>
822                </td>
823<td>
824                  <p>
825                    <code class="computeroutput"><span class="identifier">rotate</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
826                    <span class="identifier">m</span><span class="special">,</span>
827                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">))</span></code>
828                  </p>
829                </td>
830<td>
831                </td>
832</tr>
833<tr>
834<td>
835                  <p>
836                    <code class="computeroutput"><span class="identifier">rotate_copy</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
837                    <span class="identifier">m</span><span class="special">,</span>
838                    <span class="identifier">o</span><span class="special">)</span></code>
839                  </p>
840                </td>
841<td>
842                  <p>
843                    <code class="computeroutput"><span class="identifier">rotate_copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
844                    <span class="identifier">m</span><span class="special">,</span>
845                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
846                    <span class="identifier">o</span><span class="special">)</span></code>
847                  </p>
848                </td>
849<td>
850                </td>
851</tr>
852<tr>
853<td>
854                  <p>
855                    <code class="computeroutput"><span class="identifier">random_shuffle</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
856                  </p>
857                </td>
858<td>
859                  <p>
860                    <code class="computeroutput"><span class="identifier">random_shuffle</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">f</span><span class="special">)</span></code>
861                  </p>
862                </td>
863<td>
864                  <p>
865                    Until C++17
866                  </p>
867                </td>
868</tr>
869<tr>
870<td>
871                  <p>
872                    <code class="computeroutput"><span class="identifier">partition</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
873                    <span class="identifier">f</span><span class="special">)</span></code>
874                  </p>
875                </td>
876<td>
877                  <p>
878                    <code class="computeroutput"><span class="identifier">partition</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
879                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
880                    <span class="identifier">f</span><span class="special">)</span></code>
881                  </p>
882                </td>
883<td>
884                </td>
885</tr>
886<tr>
887<td>
888                  <p>
889                    <code class="computeroutput"><span class="identifier">stable_partition</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">f</span><span class="special">)</span></code>
890                  </p>
891                </td>
892<td>
893                  <p>
894                    <code class="computeroutput"><span class="identifier">stable_partition</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">f</span><span class="special">)</span></code>
895                  </p>
896                </td>
897<td>
898                </td>
899</tr>
900<tr>
901<td>
902                  <p>
903                    <code class="computeroutput"><span class="identifier">sort</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
904                    <span class="identifier">f</span><span class="special">])</span></code>
905                  </p>
906                </td>
907<td>
908                  <p>
909                    <code class="computeroutput"><span class="identifier">sort</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
910                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
911                    <span class="identifier">f</span><span class="special">])</span></code>
912                  </p>
913                </td>
914<td>
915                </td>
916</tr>
917<tr>
918<td>
919                  <p>
920                    <code class="computeroutput"><span class="identifier">stable_sort</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
921                    <span class="identifier">f</span><span class="special">])</span></code>
922                  </p>
923                </td>
924<td>
925                  <p>
926                    <code class="computeroutput"><span class="identifier">stable_sort</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
927                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
928                    <span class="identifier">f</span><span class="special">])</span></code>
929                  </p>
930                </td>
931<td>
932                </td>
933</tr>
934<tr>
935<td>
936                  <p>
937                    <code class="computeroutput"><span class="identifier">partial_sort</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">m</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
938                  </p>
939                </td>
940<td>
941                  <p>
942                    <code class="computeroutput"><span class="identifier">partial_sort</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
943                  </p>
944                </td>
945<td>
946                </td>
947</tr>
948<tr>
949<td>
950                  <p>
951                    <code class="computeroutput"><span class="identifier">partial_sort_copy</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span> <span class="identifier">r2</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
952                  </p>
953                </td>
954<td>
955                  <p>
956                    <code class="computeroutput"><span class="identifier">partial_sort_copy</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
957                  </p>
958                </td>
959<td>
960                </td>
961</tr>
962<tr>
963<td>
964                  <p>
965                    <code class="computeroutput"><span class="identifier">nth_element</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
966                    <span class="identifier">n</span><span class="special">[,</span>
967                    <span class="identifier">f</span><span class="special">])</span></code>
968                  </p>
969                </td>
970<td>
971                  <p>
972                    <code class="computeroutput"><span class="identifier">nth_element</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
973                    <span class="identifier">n</span><span class="special">,</span>
974                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
975                    <span class="identifier">f</span><span class="special">])</span></code>
976                  </p>
977                </td>
978<td>
979                </td>
980</tr>
981<tr>
982<td>
983                  <p>
984                    <code class="computeroutput"><span class="identifier">merge</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span>
985                    <span class="identifier">r2</span><span class="special">,</span>
986                    <span class="identifier">o</span><span class="special">[,</span>
987                    <span class="identifier">f</span><span class="special">])</span></code>
988                  </p>
989                </td>
990<td>
991                  <p>
992                    <code class="computeroutput"><span class="identifier">merge</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
993                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
994                    <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span>
995                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span>
996                    <span class="identifier">o</span><span class="special">[,</span>
997                    <span class="identifier">f</span><span class="special">])</span></code>
998                  </p>
999                </td>
1000<td>
1001                </td>
1002</tr>
1003<tr>
1004<td>
1005                  <p>
1006                    <code class="computeroutput"><span class="identifier">inplace_merge</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">m</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1007                  </p>
1008                </td>
1009<td>
1010                  <p>
1011                    <code class="computeroutput"><span class="identifier">inplace_merge</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">m</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1012                  </p>
1013                </td>
1014<td>
1015                </td>
1016</tr>
1017<tr>
1018<td>
1019                  <p>
1020                    <code class="computeroutput"><span class="identifier">set_union</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span>
1021                    <span class="identifier">r2</span><span class="special">,</span>
1022                    <span class="identifier">o</span><span class="special">[,</span>
1023                    <span class="identifier">f</span><span class="special">])</span></code>
1024                  </p>
1025                </td>
1026<td>
1027                  <p>
1028                    <code class="computeroutput"><span class="identifier">set_union</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
1029                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span>
1030                    <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span>
1031                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span>
1032                    <span class="identifier">f</span><span class="special">])</span></code>
1033                  </p>
1034                </td>
1035<td>
1036                </td>
1037</tr>
1038<tr>
1039<td>
1040                  <p>
1041                    <code class="computeroutput"><span class="identifier">set_intersection</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span> <span class="identifier">r2</span><span class="special">,</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1042                  </p>
1043                </td>
1044<td>
1045                  <p>
1046                    <code class="computeroutput"><span class="identifier">set_intersection</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1047                  </p>
1048                </td>
1049<td>
1050                </td>
1051</tr>
1052<tr>
1053<td>
1054                  <p>
1055                    <code class="computeroutput"><span class="identifier">set_difference</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span> <span class="identifier">r2</span><span class="special">,</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1056                  </p>
1057                </td>
1058<td>
1059                  <p>
1060                    <code class="computeroutput"><span class="identifier">set_difference</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1061                  </p>
1062                </td>
1063<td>
1064                </td>
1065</tr>
1066<tr>
1067<td>
1068                  <p>
1069                    <code class="computeroutput"><span class="identifier">set_symmetric_difference</span><span class="special">(</span><span class="identifier">r1</span><span class="special">,</span> <span class="identifier">r2</span><span class="special">,</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1070                  </p>
1071                </td>
1072<td>
1073                  <p>
1074                    <code class="computeroutput"><span class="identifier">set_symmetric_difference</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r1</span><span class="special">),</span> <span class="identifier">begin</span><span class="special">(</span><span class="identifier">r2</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r2</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1075                  </p>
1076                </td>
1077<td>
1078                </td>
1079</tr>
1080<tr>
1081<td>
1082                  <p>
1083                    <code class="computeroutput"><span class="identifier">push_heap</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
1084                    <span class="identifier">f</span><span class="special">])</span></code>
1085                  </p>
1086                </td>
1087<td>
1088                  <p>
1089                    <code class="computeroutput"><span class="identifier">push_heap</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
1090                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
1091                    <span class="identifier">f</span><span class="special">])</span></code>
1092                  </p>
1093                </td>
1094<td>
1095                </td>
1096</tr>
1097<tr>
1098<td>
1099                  <p>
1100                    <code class="computeroutput"><span class="identifier">pop_heap</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
1101                    <span class="identifier">f</span><span class="special">])</span></code>
1102                  </p>
1103                </td>
1104<td>
1105                  <p>
1106                    <code class="computeroutput"><span class="identifier">pop_heap</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
1107                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
1108                    <span class="identifier">f</span><span class="special">])</span></code>
1109                  </p>
1110                </td>
1111<td>
1112                </td>
1113</tr>
1114<tr>
1115<td>
1116                  <p>
1117                    <code class="computeroutput"><span class="identifier">make_heap</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
1118                    <span class="identifier">f</span><span class="special">])</span></code>
1119                  </p>
1120                </td>
1121<td>
1122                  <p>
1123                    <code class="computeroutput"><span class="identifier">make_heap</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
1124                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
1125                    <span class="identifier">f</span><span class="special">])</span></code>
1126                  </p>
1127                </td>
1128<td>
1129                </td>
1130</tr>
1131<tr>
1132<td>
1133                  <p>
1134                    <code class="computeroutput"><span class="identifier">sort_heap</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span>
1135                    <span class="identifier">f</span><span class="special">])</span></code>
1136                  </p>
1137                </td>
1138<td>
1139                  <p>
1140                    <code class="computeroutput"><span class="identifier">sort_heap</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
1141                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span>
1142                    <span class="identifier">f</span><span class="special">])</span></code>
1143                  </p>
1144                </td>
1145<td>
1146                </td>
1147</tr>
1148<tr>
1149<td>
1150                  <p>
1151                    <code class="computeroutput"><span class="identifier">next_permutation</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1152                  </p>
1153                </td>
1154<td>
1155                  <p>
1156                    <code class="computeroutput"><span class="identifier">next_permutation</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1157                  </p>
1158                </td>
1159<td>
1160                </td>
1161</tr>
1162<tr>
1163<td>
1164                  <p>
1165                    <code class="computeroutput"><span class="identifier">prev_permutation</span><span class="special">(</span><span class="identifier">r</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1166                  </p>
1167                </td>
1168<td>
1169                  <p>
1170                    <code class="computeroutput"><span class="identifier">prev_permutation</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">)[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1171                  </p>
1172                </td>
1173<td>
1174                </td>
1175</tr>
1176<tr>
1177<td>
1178                  <p>
1179                    <code class="computeroutput"><span class="identifier">inner_product</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">,</span> <span class="identifier">a</span><span class="special">[,</span> <span class="identifier">f1</span><span class="special">,</span> <span class="identifier">f2</span><span class="special">])</span></code>
1180                  </p>
1181                </td>
1182<td>
1183                  <p>
1184                    <code class="computeroutput"><span class="identifier">inner_product</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f1</span><span class="special">,</span> <span class="identifier">f2</span><span class="special">])</span></code>
1185                  </p>
1186                </td>
1187<td>
1188                </td>
1189</tr>
1190<tr>
1191<td>
1192                  <p>
1193                    <code class="computeroutput"><span class="identifier">partial_sum</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span>
1194                    <span class="identifier">o</span><span class="special">[,</span>
1195                    <span class="identifier">f</span><span class="special">])</span></code>
1196                  </p>
1197                </td>
1198<td>
1199                  <p>
1200                    <code class="computeroutput"><span class="identifier">partial_sum</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
1201                    <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span>
1202                    <span class="identifier">o</span><span class="special">[,</span>
1203                    <span class="identifier">f</span><span class="special">])</span></code>
1204                  </p>
1205                </td>
1206<td>
1207                </td>
1208</tr>
1209<tr>
1210<td>
1211                  <p>
1212                    <code class="computeroutput"><span class="identifier">adjacent_difference</span><span class="special">(</span><span class="identifier">r</span><span class="special">,</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1213                  </p>
1214                </td>
1215<td>
1216                  <p>
1217                    <code class="computeroutput"><span class="identifier">adjacent_difference</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">r</span><span class="special">),</span> <span class="identifier">o</span><span class="special">[,</span> <span class="identifier">f</span><span class="special">])</span></code>
1218                  </p>
1219                </td>
1220<td>
1221                </td>
1222</tr>
1223</tbody>
1224</table></div>
1225</div>
1226<br class="table-break">
1227</div>
1228<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
1229<td align="left"></td>
1230<td align="right"><div class="copyright-footer">Copyright © 2002-2005, 2010, 2014, 2015 Joel de Guzman, Dan Marsden, Thomas
1231      Heller, John Fletcher<p>
1232        Distributed under the Boost Software License, Version 1.0. (See accompanying
1233        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>)
1234      </p>
1235</div></td>
1236</tr></table>
1237<hr>
1238<div class="spirit-nav">
1239<a accesskey="p" href="container.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../stl.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="../../inside.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
1240</div>
1241</body>
1242</html>
1243