]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/icl/doc/html/boost_icl/function_reference/symmetric_difference.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / icl / doc / html / boost_icl / function_reference / symmetric_difference.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Symmetric Difference</title>
5 <link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
7 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.Icl">
8 <link rel="up" href="../function_reference.html" title="Function Reference">
9 <link rel="prev" href="intersection.html" title="Intersection">
10 <link rel="next" href="iterator_related.html" title="Iterator related">
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="../../../../../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="intersection.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function_reference.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="iterator_related.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section boost_icl_function_reference_symmetric_difference" lang="en">
26 <div class="titlepage"><div><div><h3 class="title">
27 <a name="boost_icl.function_reference.symmetric_difference"></a><a class="link" href="symmetric_difference.html" title="Symmetric Difference">Symmetric
28 Difference</a>
29 </h3></div></div></div>
30 <div class="toc"><dl>
31 <dt><span class="section"><a href="symmetric_difference.html#boost_icl.function_reference.symmetric_difference.synopsis">Synopsis</a></span></dt>
32 <dt><span class="section"><a href="symmetric_difference.html#boost_icl.function_reference.symmetric_difference.functions">Functions</a></span></dt>
33 <dt><span class="section"><a href="symmetric_difference.html#boost_icl.function_reference.symmetric_difference.inplace_operators">Inplace
34 operators</a></span></dt>
35 <dt><span class="section"><a href="symmetric_difference.html#boost_icl.function_reference.symmetric_difference.infix_operators">Infix
36 operators</a></span></dt>
37 </dl></div>
38 <div class="section boost_icl_function_reference_symmetric_difference_synopsis" lang="en">
39 <div class="titlepage"><div><div><h4 class="title">
40 <a name="boost_icl.function_reference.symmetric_difference.synopsis"></a><a class="link" href="symmetric_difference.html#boost_icl.function_reference.symmetric_difference.synopsis" title="Synopsis">Synopsis</a>
41 </h4></div></div></div>
42 <div class="informaltable"><table class="table">
43 <colgroup>
44 <col>
45 <col>
46 <col>
47 <col>
48 <col>
49 </colgroup>
50 <thead><tr>
51 <th>
52 <p>
53 Symmetric difference
54 </p>
55 </th>
56 <th>
57 <p>
58 interval<br> sets
59 </p>
60 </th>
61 <th>
62 <p>
63 interval<br> maps
64 </p>
65 </th>
66 <th>
67 <p>
68 element<br> sets
69 </p>
70 </th>
71 <th>
72 <p>
73 element<br> maps
74 </p>
75 </th>
76 </tr></thead>
77 <tbody>
78 <tr>
79 <td>
80 <p>
81 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
82 <span class="identifier">T</span><span class="special">::</span><span class="identifier">flip</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
83 </p>
84 </td>
85 <td>
86 <p>
87 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
88 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
89 </p>
90 </td>
91 <td>
92 <p>
93 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
94 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
95 </p>
96 </td>
97 <td>
98 <p>
99 </p>
100 </td>
101 <td>
102 <p>
103 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
104 </p>
105 </td>
106 </tr>
107 <tr>
108 <td>
109 <p>
110 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
111 <span class="identifier">flip</span><span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span>
112 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
113 </p>
114 </td>
115 <td>
116 <p>
117 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
118 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
119 </p>
120 </td>
121 <td>
122 <p>
123 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
124 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
125 </p>
126 </td>
127 <td>
128 <p>
129 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
130 </p>
131 </td>
132 <td>
133 <p>
134 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
135 </p>
136 </td>
137 </tr>
138 <tr>
139 <td>
140 <p>
141 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
142 <span class="keyword">operator</span> <span class="special">^=(</span><span class="identifier">T</span><span class="special">&amp;,</span>
143 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
144 </p>
145 </td>
146 <td>
147 <p>
148 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
149 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
150 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
151 </p>
152 </td>
153 <td>
154 <p>
155 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
156 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
157 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
158 </p>
159 </td>
160 <td>
161 <p>
162 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
163 <a class="link" href="../interface/function_synopsis.html#itl_set_type"><span class="bold"><strong>s</strong></span></a>
164 </p>
165 </td>
166 <td>
167 <p>
168 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
169 <a class="link" href="../interface/function_synopsis.html#itl_map_type"><span class="bold"><strong>m</strong></span></a>
170 </p>
171 </td>
172 </tr>
173 <tr>
174 <td>
175 <p>
176 <code class="computeroutput"><span class="identifier">T</span> <span class="keyword">operator</span>
177 <span class="special">^</span> <span class="special">(</span><span class="identifier">T</span><span class="special">,</span>
178 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code><br> <code class="computeroutput"><span class="identifier">T</span>
179 <span class="keyword">operator</span> <span class="special">^</span>
180 <span class="special">(</span><span class="keyword">const</span>
181 <span class="identifier">P</span><span class="special">&amp;,</span>
182 <span class="identifier">T</span><span class="special">)</span></code>
183 </p>
184 </td>
185 <td>
186 <p>
187 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
188 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
189 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
190 </p>
191 </td>
192 <td>
193 <p>
194 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
195 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a>
196 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
197 </p>
198 </td>
199 <td>
200 <p>
201 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a>
202 <a class="link" href="../interface/function_synopsis.html#itl_set_type"><span class="bold"><strong>s</strong></span></a>
203 </p>
204 </td>
205 <td>
206 <p>
207 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a>
208 <a class="link" href="../interface/function_synopsis.html#itl_map_type"><span class="bold"><strong>m</strong></span></a>
209 </p>
210 </td>
211 </tr>
212 </tbody>
213 </table></div>
214 <p>
215 Functions and operators that implement <span class="emphasis"><em><span class="bold"><strong>symmetric
216 difference</strong></span></em></span> on <span class="bold"><strong>icl</strong></span>
217 objects are given in the table above.
218 </p>
219 <div class="informaltable"><table class="table">
220 <colgroup>
221 <col>
222 <col>
223 </colgroup>
224 <thead><tr>
225 <th>
226 <p>
227 </p>
228 </th>
229 <th>
230 <p>
231 Description of symmetric difference
232 </p>
233 </th>
234 </tr></thead>
235 <tbody>
236 <tr>
237 <td>
238 <p>
239 <code class="computeroutput"><span class="identifier">Sets</span></code>
240 </p>
241 </td>
242 <td>
243 <p>
244 <code class="computeroutput"><span class="keyword">operator</span> <span class="special">^</span></code>
245 implements <span class="emphasis"><em><span class="bold"><strong>set symmetric difference</strong></span></em></span>
246 </p>
247 </td>
248 </tr>
249 <tr>
250 <td>
251 <p>
252 <code class="computeroutput"><span class="identifier">Maps</span></code>
253 </p>
254 </td>
255 <td>
256 <p>
257 <code class="computeroutput"><span class="keyword">operator</span> <span class="special">^</span></code>
258 implements a <span class="emphasis"><em><span class="bold"><strong>map symmetric difference</strong></span></em></span>
259 function similar to <span class="emphasis"><em>set symmetric difference</em></span>.
260 All pairs that are common to both arguments are removed. All others
261 unified.
262 </p>
263 </td>
264 </tr>
265 </tbody>
266 </table></div>
267 </div>
268 <div class="section boost_icl_function_reference_symmetric_difference_functions" lang="en">
269 <div class="titlepage"><div><div><h4 class="title">
270 <a name="boost_icl.function_reference.symmetric_difference.functions"></a><a class="link" href="symmetric_difference.html#boost_icl.function_reference.symmetric_difference.functions" title="Functions">Functions</a>
271 </h4></div></div></div>
272 <p>
273 <span class="emphasis"><em>Symmetric difference</em></span> is implemented on interval containers
274 by the function <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
275 <span class="identifier">flip</span><span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;</span> <span class="identifier">operand</span><span class="special">)</span></code>.
276 </p>
277 <p>
278
279 </p>
280 <pre class="programlisting"><span class="identifier">flip</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span><span class="identifier">x</span><span class="special">)</span>
281 </pre>
282 <p>
283 </p>
284 <p>
285 deletes every element of <code class="computeroutput"><span class="identifier">y</span></code>,
286 if it is contained in <code class="computeroutput"><span class="identifier">x</span></code>.
287 Elements of <code class="computeroutput"><span class="identifier">x</span></code> not contained
288 in <code class="computeroutput"><span class="identifier">y</span></code> are added. For icl
289 containers flip is also availabel as memeber function <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">flip</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;</span> <span class="identifier">operand</span><span class="special">)</span></code>.
290 </p>
291 <p>
292 The admissible combinations of types for member function <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">flip</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
293 can be summarized in the <span class="emphasis"><em><span class="bold"><strong>overload table</strong></span></em></span>
294 below:
295 </p>
296 <p>
297
298 </p>
299 <pre class="programlisting"><span class="comment">/* overload table for */</span> <span class="identifier">T</span><span class="special">\</span><span class="identifier">P</span><span class="special">|</span> <span class="identifier">e</span> <span class="identifier">i</span> <span class="identifier">b</span> <span class="identifier">p</span>
300 <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">flip</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span> <span class="special">---+--------</span>
301 <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">flip</span><span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span> <span class="identifier">s</span> <span class="special">|</span> <span class="identifier">s</span>
302 <span class="identifier">m</span> <span class="special">|</span> <span class="identifier">m</span>
303 <span class="identifier">S</span> <span class="special">|</span> <span class="identifier">S</span> <span class="identifier">S</span>
304 <span class="identifier">M</span> <span class="special">|</span> <span class="identifier">M</span> <span class="identifier">M</span>
305 </pre>
306 <p>
307 </p>
308 <p>
309 The next table contains complexity characteristics for functions <code class="computeroutput"><span class="identifier">flip</span></code>.
310 </p>
311 <div class="table">
312 <a name="id1182273"></a><p class="title"><b>Table&#160;1.37.&#160;Time Complexity for member functions flip on icl
313 containers</b></p>
314 <div class="table-contents"><table class="table" summary="Time Complexity for member functions flip on icl
315 containers">
316 <colgroup>
317 <col>
318 <col>
319 <col>
320 <col>
321 <col>
322 </colgroup>
323 <thead><tr>
324 <th>
325 <p>
326 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
327 <span class="identifier">T</span><span class="special">::</span><span class="identifier">flip</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code><br> <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">flip</span><span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span>
328 <span class="identifier">P</span><span class="special">&amp;)</span></code>
329 </p>
330 </th>
331 <th>
332 <p>
333 domain<br> type
334 </p>
335 </th>
336 <th>
337 <p>
338 interval<br> type
339 </p>
340 </th>
341 <th>
342 <p>
343 domain<br> mapping<br> type
344 </p>
345 </th>
346 <th>
347 <p>
348 interval<br> mapping<br> type
349 </p>
350 </th>
351 </tr></thead>
352 <tbody>
353 <tr>
354 <td>
355 <p>
356 <a href="http://www.cplusplus.com/reference/stl/set/" target="_top"><code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span></code> </a>
357 </p>
358 </td>
359 <td>
360 <p>
361 <span class="emphasis"><em>O(log n)</em></span>
362 </p>
363 </td>
364 <td>
365 <p>
366 </p>
367 </td>
368 <td>
369 <p>
370 </p>
371 </td>
372 <td>
373 <p>
374 </p>
375 </td>
376 </tr>
377 <tr>
378 <td>
379 <p>
380 <code class="computeroutput"><a class="link" href="../../boost/icl/map.html" title="Class template map">icl::map</a></code>
381 </p>
382 </td>
383 <td>
384 <p>
385 </p>
386 </td>
387 <td>
388 <p>
389 </p>
390 </td>
391 <td>
392 <p>
393 <span class="emphasis"><em>O(log n)</em></span>
394 </p>
395 </td>
396 <td>
397 <p>
398 </p>
399 </td>
400 </tr>
401 <tr>
402 <td>
403 <p>
404 <code class="computeroutput"><a class="link" href="../../boost/icl/interval_set.html" title="Class template interval_set">interval_set</a></code><br>
405 <code class="computeroutput"><a class="link" href="../../boost/icl/separate_interval_set.html" title="Class template separate_interval_set">separate_interval_set</a></code>
406 </p>
407 </td>
408 <td>
409 <p>
410 <span class="emphasis"><em>O(log n)</em></span>
411 </p>
412 </td>
413 <td>
414 <p>
415 <span class="emphasis"><em>O(n)</em></span>
416 </p>
417 </td>
418 <td>
419 <p>
420 </p>
421 </td>
422 <td>
423 <p>
424 </p>
425 </td>
426 </tr>
427 <tr>
428 <td>
429 <p>
430 <code class="computeroutput"><a class="link" href="../../boost/icl/split_interval_set.html" title="Class template split_interval_set">split_interval_set</a></code>
431 </p>
432 </td>
433 <td>
434 <p>
435 <span class="emphasis"><em>O(log n)</em></span>
436 </p>
437 </td>
438 <td>
439 <p>
440 <span class="emphasis"><em>O(n)</em></span>
441 </p>
442 </td>
443 <td>
444 <p>
445 </p>
446 </td>
447 <td>
448 <p>
449 </p>
450 </td>
451 </tr>
452 <tr>
453 <td>
454 <p>
455 <code class="computeroutput"><a class="link" href="../../boost/icl/interval_map.html" title="Class template interval_map">interval_map</a></code><br>
456 <code class="computeroutput"><a class="link" href="../../boost/icl/split_interval_map.html" title="Class template split_interval_map">split_interval_map</a></code>
457 </p>
458 </td>
459 <td>
460 <p>
461 </p>
462 </td>
463 <td>
464 <p>
465 </p>
466 </td>
467 <td>
468 <p>
469 <span class="emphasis"><em>O(log n)</em></span>
470 </p>
471 </td>
472 <td>
473 <p>
474 <span class="emphasis"><em>O(n)</em></span>
475 </p>
476 </td>
477 </tr>
478 </tbody>
479 </table></div>
480 </div>
481 <br class="table-break">
482 </div>
483 <div class="section boost_icl_function_reference_symmetric_difference_inplace_operators" lang="en">
484 <div class="titlepage"><div><div><h4 class="title">
485 <a name="boost_icl.function_reference.symmetric_difference.inplace_operators"></a><a class="link" href="symmetric_difference.html#boost_icl.function_reference.symmetric_difference.inplace_operators" title="Inplace operators">Inplace
486 operators</a>
487 </h4></div></div></div>
488 <p>
489 The overload tables below are giving admissible type combinations for
490 <code class="computeroutput"><span class="keyword">operator</span> <span class="special">^=</span></code>
491 that implements <span class="emphasis"><em><span class="bold"><strong>symmetric difference</strong></span></em></span>.
492 </p>
493 <p>
494
495 </p>
496 <pre class="programlisting"><span class="comment">// overload tables for element containers: interval containers:
497 </span><span class="identifier">T</span><span class="special">&amp;</span> <span class="keyword">operator</span> <span class="special">^=</span> <span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span> <span class="special">^=</span> <span class="special">|</span> <span class="identifier">e</span> <span class="identifier">b</span> <span class="identifier">s</span> <span class="identifier">m</span> <span class="special">^=</span> <span class="special">|</span> <span class="identifier">e</span> <span class="identifier">i</span> <span class="identifier">b</span> <span class="identifier">p</span> <span class="identifier">S</span> <span class="identifier">M</span>
498 <span class="special">---+--------</span> <span class="special">---+------------</span>
499 <span class="identifier">s</span> <span class="special">|</span> <span class="identifier">s</span> <span class="identifier">s</span> <span class="identifier">S</span> <span class="special">|</span> <span class="identifier">S</span> <span class="identifier">S</span> <span class="identifier">S</span>
500 <span class="identifier">m</span> <span class="special">|</span> <span class="identifier">m</span> <span class="identifier">m</span> <span class="identifier">M</span> <span class="special">|</span> <span class="identifier">M</span> <span class="identifier">M</span> <span class="identifier">M</span>
501 </pre>
502 <p>
503 Complexity characteristics for inplace operators that implement <span class="emphasis"><em><span class="bold"><strong>symmetric difference</strong></span></em></span> are given by the
504 next tables where
505 </p>
506 <pre class="programlisting"><span class="identifier">n</span> <span class="special">=</span> <span class="identifier">iterative_size</span><span class="special">(</span><span class="identifier">y</span><span class="special">);</span>
507 <span class="identifier">m</span> <span class="special">=</span> <span class="identifier">iterative_size</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span> <span class="comment">//if P is a container
508 </span></pre>
509 <p>
510 </p>
511 <div class="table">
512 <a name="id1183001"></a><p class="title"><b>Table&#160;1.38.&#160;Time Complexity for inplace symmetric difference
513 on element containers</b></p>
514 <div class="table-contents"><table class="table" summary="Time Complexity for inplace symmetric difference
515 on element containers">
516 <colgroup>
517 <col>
518 <col>
519 <col>
520 <col>
521 <col>
522 </colgroup>
523 <thead><tr>
524 <th>
525 <p>
526 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
527 <span class="keyword">operator</span> <span class="special">&amp;=</span>
528 <span class="special">(</span><span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">y</span><span class="special">,</span> <span class="keyword">const</span>
529 <span class="identifier">P</span><span class="special">&amp;</span>
530 <span class="identifier">x</span><span class="special">)</span></code>
531 </p>
532 </th>
533 <th>
534 <p>
535 domain<br> type
536 </p>
537 </th>
538 <th>
539 <p>
540 domain<br> mapping<br> type
541 </p>
542 </th>
543 <th>
544 <p>
545 std::set
546 </p>
547 </th>
548 <th>
549 <p>
550 icl::map
551 </p>
552 </th>
553 </tr></thead>
554 <tbody>
555 <tr>
556 <td>
557 <p>
558 <a href="http://www.cplusplus.com/reference/stl/set/" target="_top"><code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span></code> </a>
559 </p>
560 </td>
561 <td>
562 <p>
563 <span class="emphasis"><em>O(log n)</em></span>
564 </p>
565 </td>
566 <td>
567 <p>
568 </p>
569 </td>
570 <td>
571 <p>
572 <span class="emphasis"><em>O(m log n)</em></span>
573 </p>
574 </td>
575 <td>
576 <p>
577 </p>
578 </td>
579 </tr>
580 <tr>
581 <td>
582 <p>
583 <code class="computeroutput"><a class="link" href="../../boost/icl/map.html" title="Class template map">icl::map</a></code>
584 </p>
585 </td>
586 <td>
587 <p>
588 <span class="emphasis"><em>O(log n)</em></span>
589 </p>
590 </td>
591 <td>
592 <p>
593 <span class="emphasis"><em>O(log n)</em></span>
594 </p>
595 </td>
596 <td>
597 <p>
598 <span class="emphasis"><em>O(m log n)</em></span>
599 </p>
600 </td>
601 <td>
602 <p>
603 <span class="emphasis"><em>O(m log n)</em></span>
604 </p>
605 </td>
606 </tr>
607 </tbody>
608 </table></div>
609 </div>
610 <br class="table-break"><div class="table">
611 <a name="id1183242"></a><p class="title"><b>Table&#160;1.39.&#160;Time Complexity for inplace symmetric
612 difference on interval containers</b></p>
613 <div class="table-contents"><table class="table" summary="Time Complexity for inplace symmetric
614 difference on interval containers">
615 <colgroup>
616 <col>
617 <col>
618 <col>
619 <col>
620 <col>
621 <col>
622 <col>
623 </colgroup>
624 <thead><tr>
625 <th>
626 <p>
627 <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span>
628 <span class="keyword">operator</span> <span class="special">&amp;=</span>
629 <span class="special">(</span><span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span>
630 <span class="identifier">P</span><span class="special">&amp;)</span></code>
631 </p>
632 </th>
633 <th>
634 <p>
635 domain<br> type
636 </p>
637 </th>
638 <th>
639 <p>
640 interval<br> type
641 </p>
642 </th>
643 <th>
644 <p>
645 domain<br> mapping<br> type
646 </p>
647 </th>
648 <th>
649 <p>
650 interval<br> mapping<br> type
651 </p>
652 </th>
653 <th>
654 <p>
655 interval<br> sets
656 </p>
657 </th>
658 <th>
659 <p>
660 interval<br> maps
661 </p>
662 </th>
663 </tr></thead>
664 <tbody>
665 <tr>
666 <td>
667 <p>
668 interval_sets
669 </p>
670 </td>
671 <td>
672 <p>
673 <span class="emphasis"><em>O(log n)</em></span>
674 </p>
675 </td>
676 <td>
677 <p>
678 <span class="emphasis"><em>O(n)</em></span>
679 </p>
680 </td>
681 <td>
682 <p>
683 </p>
684 </td>
685 <td>
686 <p>
687 </p>
688 </td>
689 <td>
690 <p>
691 <span class="emphasis"><em>O(m log(n+m))</em></span>
692 </p>
693 </td>
694 <td>
695 <p>
696 </p>
697 </td>
698 </tr>
699 <tr>
700 <td>
701 <p>
702 interval_maps
703 </p>
704 </td>
705 <td>
706 <p>
707 <span class="emphasis"><em>O(log n)</em></span>
708 </p>
709 </td>
710 <td>
711 <p>
712 <span class="emphasis"><em>O(n)</em></span>
713 </p>
714 </td>
715 <td>
716 <p>
717 <span class="emphasis"><em>O(log n)</em></span>
718 </p>
719 </td>
720 <td>
721 <p>
722 <span class="emphasis"><em>O(n)</em></span>
723 </p>
724 </td>
725 <td>
726 <p>
727 <span class="emphasis"><em>O(m log(n+m))</em></span>
728 </p>
729 </td>
730 <td>
731 <p>
732 <span class="emphasis"><em>O(m log(n+m))</em></span>
733 </p>
734 </td>
735 </tr>
736 </tbody>
737 </table></div>
738 </div>
739 <br class="table-break">
740 </div>
741 <div class="section boost_icl_function_reference_symmetric_difference_infix_operators" lang="en">
742 <div class="titlepage"><div><div><h4 class="title">
743 <a name="boost_icl.function_reference.symmetric_difference.infix_operators"></a><a class="link" href="symmetric_difference.html#boost_icl.function_reference.symmetric_difference.infix_operators" title="Infix operators">Infix
744 operators</a>
745 </h4></div></div></div>
746 <p>
747 For the infix version of symmetric difference the following overloads are
748 available:
749 </p>
750 <p>
751
752 </p>
753 <pre class="programlisting"><span class="comment">// overload tables for element containers: interval containers:
754 </span><span class="identifier">T</span> <span class="keyword">operator</span> <span class="special">^</span> <span class="special">(</span><span class="identifier">T</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span> <span class="special">^</span> <span class="special">|</span> <span class="identifier">e</span> <span class="identifier">b</span> <span class="identifier">s</span> <span class="identifier">m</span> <span class="special">^</span> <span class="special">|</span> <span class="identifier">e</span> <span class="identifier">i</span> <span class="identifier">b</span> <span class="identifier">p</span> <span class="identifier">S1</span> <span class="identifier">S2</span> <span class="identifier">S3</span> <span class="identifier">M1</span> <span class="identifier">M3</span>
755 <span class="identifier">T</span> <span class="keyword">operator</span> <span class="special">^</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;,</span> <span class="identifier">T</span><span class="special">)</span> <span class="special">---+--------</span> <span class="special">---+---------------------------</span>
756 <span class="identifier">e</span> <span class="special">|</span> <span class="identifier">s</span> <span class="identifier">e</span> <span class="special">|</span> <span class="identifier">S1</span> <span class="identifier">S2</span> <span class="identifier">S3</span>
757 <span class="identifier">b</span> <span class="special">|</span> <span class="identifier">m</span> <span class="identifier">i</span> <span class="special">|</span> <span class="identifier">S1</span> <span class="identifier">S2</span> <span class="identifier">S3</span>
758 <span class="identifier">s</span> <span class="special">|</span> <span class="identifier">s</span> <span class="identifier">s</span> <span class="identifier">b</span> <span class="special">|</span> <span class="identifier">M1</span> <span class="identifier">M3</span>
759 <span class="identifier">m</span> <span class="special">|</span> <span class="identifier">m</span> <span class="identifier">m</span> <span class="identifier">p</span> <span class="special">|</span> <span class="identifier">M1</span> <span class="identifier">M3</span>
760 <span class="identifier">S1</span> <span class="special">|</span> <span class="identifier">S1</span> <span class="identifier">S1</span> <span class="identifier">S1</span> <span class="identifier">S2</span> <span class="identifier">S3</span>
761 <span class="identifier">S2</span> <span class="special">|</span> <span class="identifier">S2</span> <span class="identifier">S2</span> <span class="identifier">S2</span> <span class="identifier">S2</span> <span class="identifier">S3</span>
762 <span class="identifier">S3</span> <span class="special">|</span> <span class="identifier">S3</span> <span class="identifier">S3</span> <span class="identifier">S3</span> <span class="identifier">S3</span> <span class="identifier">S3</span>
763 <span class="identifier">M1</span> <span class="special">|</span> <span class="identifier">M1</span> <span class="identifier">M1</span> <span class="identifier">M1</span> <span class="identifier">M3</span>
764 <span class="identifier">M3</span> <span class="special">|</span> <span class="identifier">M3</span> <span class="identifier">M3</span> <span class="identifier">M3</span> <span class="identifier">M3</span>
765 </pre>
766 <p>
767 </p>
768 <p>
769 To resolve ambiguities among interval containers the <span class="emphasis"><em><span class="bold"><strong>finer</strong></span></em></span> container type is chosen as result
770 type.
771 </p>
772 </div>
773 <p>
774 <span class="emphasis"><em><span class="bold"><strong>See also . . .</strong></span></em></span>
775 </p>
776 <div class="informaltable"><table class="table">
777 <colgroup><col></colgroup>
778 <thead><tr></tr></thead>
779 <tbody>
780 <tr><td>
781 <p>
782 <a class="link" href="intersection.html" title="Intersection"><span class="emphasis"><em><span class="bold"><strong>Intersection</strong></span></em></span></a>
783 </p>
784 </td></tr>
785 <tr><td>
786 <p>
787 <a class="link" href="subtraction.html" title="Subtraction"><span class="emphasis"><em><span class="bold"><strong>Subtraction</strong></span></em></span></a>
788 </p>
789 </td></tr>
790 <tr><td>
791 <p>
792 <a class="link" href="addition.html" title="Addition"><span class="emphasis"><em><span class="bold"><strong>Addition</strong></span></em></span></a>
793 </p>
794 </td></tr>
795 </tbody>
796 </table></div>
797 <p>
798 <span class="emphasis"><em><span class="bold"><strong>Back to section . . .</strong></span></em></span>
799 </p>
800 <div class="informaltable"><table class="table">
801 <colgroup><col></colgroup>
802 <thead><tr></tr></thead>
803 <tbody>
804 <tr><td>
805 <p>
806 <a class="link" href="../interface/function_synopsis.html#function_synopsis_table"><span class="emphasis"><em><span class="bold"><strong>Function
807 Synopsis</strong></span></em></span></a>
808 </p>
809 </td></tr>
810 <tr><td>
811 <p>
812 <a class="link" href="../interface.html" title="Interface"><span class="emphasis"><em><span class="bold"><strong>Interface</strong></span></em></span></a>
813 </p>
814 </td></tr>
815 </tbody>
816 </table></div>
817 </div>
818 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
819 <td align="left"></td>
820 <td align="right"><div class="copyright-footer">Copyright &#169; 2007 -2010 Joachim Faulhaber<br>Copyright &#169; 1999 -2006 Cortex Software GmbH<p>
821 Distributed under the Boost Software License, Version 1.0. (See accompanying
822 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>)
823 </p>
824 </div></td>
825 </tr></table>
826 <hr>
827 <div class="spirit-nav">
828 <a accesskey="p" href="intersection.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../function_reference.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="iterator_related.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
829 </div>
830 </body>
831 </html>