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