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"><</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">></span> 30</pre> 31<p> 32 The algorithm module provides wrappers for the standard algorithms in the 33 <code class="computeroutput"><span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span></code> and <code class="computeroutput"><span class="special"><</span><span class="identifier">numeric</span><span class="special">></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"><</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">></span> 42<span class="preprocessor">#include</span> <span class="special"><</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">></span> 43<span class="preprocessor">#include</span> <span class="special"><</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">></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