]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/icl/doc/html/boost_icl/function_reference/equivalences_and_orderings.html
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / icl / doc / html / boost_icl / function_reference / equivalences_and_orderings.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Equivalences and Orderings</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="containedness.html" title="Containedness">
10 <link rel="next" href="size.html" title="Size">
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="containedness.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="size.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section boost_icl_function_reference_equivalences_and_orderings" lang="en">
26 <div class="titlepage"><div><div><h3 class="title">
27 <a name="boost_icl.function_reference.equivalences_and_orderings"></a><a class="link" href="equivalences_and_orderings.html" title="Equivalences and Orderings">Equivalences
28 and Orderings</a>
29 </h3></div></div></div>
30 <div class="toc"><dl>
31 <dt><span class="section"><a href="equivalences_and_orderings.html#boost_icl.function_reference.equivalences_and_orderings.synopsis">Synopsis</a></span></dt>
32 <dt><span class="section"><a href="equivalences_and_orderings.html#boost_icl.function_reference.equivalences_and_orderings.less_on_intervals">Less
33 on Intervals</a></span></dt>
34 <dt><span class="section"><a href="equivalences_and_orderings.html#boost_icl.function_reference.equivalences_and_orderings.lexicographical_ordering">Lexicographical
35 Ordering</a></span></dt>
36 <dt><span class="section"><a href="equivalences_and_orderings.html#boost_icl.function_reference.equivalences_and_orderings.sequential_element_ordering">Sequential
37 Element Ordering</a></span></dt>
38 <dt><span class="section"><a href="equivalences_and_orderings.html#boost_icl.function_reference.equivalences_and_orderings.distinct_equality">Distinct
39 Equality</a></span></dt>
40 </dl></div>
41 <div class="section boost_icl_function_reference_equivalences_and_orderings_synopsis" lang="en">
42 <div class="titlepage"><div><div><h4 class="title">
43 <a name="boost_icl.function_reference.equivalences_and_orderings.synopsis"></a><a class="link" href="equivalences_and_orderings.html#boost_icl.function_reference.equivalences_and_orderings.synopsis" title="Synopsis">Synopsis</a>
44 </h4></div></div></div>
45 <div class="informaltable"><table class="table">
46 <colgroup>
47 <col>
48 <col>
49 <col>
50 <col>
51 <col>
52 <col>
53 </colgroup>
54 <thead><tr>
55 <th>
56 <p>
57 <span class="emphasis"><em><span class="bold"><strong>Equivalences and Orderings</strong></span></em></span>
58 </p>
59 </th>
60 <th>
61 <p>
62 intervals
63 </p>
64 </th>
65 <th>
66 <p>
67 interval<br> sets
68 </p>
69 </th>
70 <th>
71 <p>
72 interval<br> maps
73 </p>
74 </th>
75 <th>
76 <p>
77 element<br> sets
78 </p>
79 </th>
80 <th>
81 <p>
82 element<br> maps
83 </p>
84 </th>
85 </tr></thead>
86 <tbody>
87 <tr>
88 <td>
89 <p>
90 <span class="emphasis"><em>Segment Ordering</em></span>
91 </p>
92 </td>
93 <td>
94 <p>
95 </p>
96 </td>
97 <td>
98 <p>
99 </p>
100 </td>
101 <td>
102 <p>
103 </p>
104 </td>
105 <td>
106 <p>
107 </p>
108 </td>
109 <td>
110 <p>
111 </p>
112 </td>
113 </tr>
114 <tr>
115 <td>
116 <p>
117 <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span>
118 <span class="special">==</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span>
119 <span class="identifier">T</span><span class="special">&amp;)</span></code>
120 </p>
121 </td>
122 <td>
123 <p>
124 1
125 </p>
126 </td>
127 <td>
128 <p>
129 1
130 </p>
131 </td>
132 <td>
133 <p>
134 1
135 </p>
136 </td>
137 <td>
138 <p>
139 1
140 </p>
141 </td>
142 <td>
143 <p>
144 1
145 </p>
146 </td>
147 </tr>
148 <tr>
149 <td>
150 <p>
151 <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span>
152 <span class="special">!=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span>
153 <span class="identifier">T</span><span class="special">&amp;)</span></code>
154 </p>
155 </td>
156 <td>
157 <p>
158 1
159 </p>
160 </td>
161 <td>
162 <p>
163 1
164 </p>
165 </td>
166 <td>
167 <p>
168 1
169 </p>
170 </td>
171 <td>
172 <p>
173 1
174 </p>
175 </td>
176 <td>
177 <p>
178 1
179 </p>
180 </td>
181 </tr>
182 <tr>
183 <td>
184 <p>
185 <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span>
186 <span class="special">&lt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span>
187 <span class="identifier">T</span><span class="special">&amp;)</span></code>
188 </p>
189 </td>
190 <td>
191 <p>
192 1
193 </p>
194 </td>
195 <td>
196 <p>
197 1
198 </p>
199 </td>
200 <td>
201 <p>
202 1
203 </p>
204 </td>
205 <td>
206 <p>
207 1
208 </p>
209 </td>
210 <td>
211 <p>
212 1
213 </p>
214 </td>
215 </tr>
216 <tr>
217 <td>
218 <p>
219 <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span>
220 <span class="special">&gt;</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span>
221 <span class="identifier">T</span><span class="special">&amp;)</span></code>
222 </p>
223 </td>
224 <td>
225 <p>
226 1
227 </p>
228 </td>
229 <td>
230 <p>
231 1
232 </p>
233 </td>
234 <td>
235 <p>
236 1
237 </p>
238 </td>
239 <td>
240 <p>
241 1
242 </p>
243 </td>
244 <td>
245 <p>
246 1
247 </p>
248 </td>
249 </tr>
250 <tr>
251 <td>
252 <p>
253 <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span>
254 <span class="special">&lt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span>
255 <span class="identifier">T</span><span class="special">&amp;)</span></code>
256 </p>
257 </td>
258 <td>
259 <p>
260 1
261 </p>
262 </td>
263 <td>
264 <p>
265 1
266 </p>
267 </td>
268 <td>
269 <p>
270 1
271 </p>
272 </td>
273 <td>
274 <p>
275 1
276 </p>
277 </td>
278 <td>
279 <p>
280 1
281 </p>
282 </td>
283 </tr>
284 <tr>
285 <td>
286 <p>
287 <code class="computeroutput"><span class="keyword">bool</span> <span class="keyword">operator</span>
288 <span class="special">&gt;=</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="keyword">const</span>
289 <span class="identifier">T</span><span class="special">&amp;)</span></code>
290 </p>
291 </td>
292 <td>
293 <p>
294 1
295 </p>
296 </td>
297 <td>
298 <p>
299 1
300 </p>
301 </td>
302 <td>
303 <p>
304 1
305 </p>
306 </td>
307 <td>
308 <p>
309 1
310 </p>
311 </td>
312 <td>
313 <p>
314 1
315 </p>
316 </td>
317 </tr>
318 <tr>
319 <td>
320 <p>
321 <span class="emphasis"><em>Element Ordering</em></span>
322 </p>
323 </td>
324 <td>
325 <p>
326 </p>
327 </td>
328 <td>
329 <p>
330 </p>
331 </td>
332 <td>
333 <p>
334 </p>
335 </td>
336 <td>
337 <p>
338 </p>
339 </td>
340 <td>
341 <p>
342 </p>
343 </td>
344 </tr>
345 <tr>
346 <td>
347 <p>
348 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">is_element_equal</span><span class="special">(</span><span class="keyword">const</span>
349 <span class="identifier">T</span><span class="special">&amp;,</span>
350 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
351 </p>
352 </td>
353 <td>
354 <p>
355 </p>
356 </td>
357 <td>
358 <p>
359 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
360 </p>
361 </td>
362 <td>
363 <p>
364 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
365 </p>
366 </td>
367 <td>
368 <p>
369 1
370 </p>
371 </td>
372 <td>
373 <p>
374 1
375 </p>
376 </td>
377 </tr>
378 <tr>
379 <td>
380 <p>
381 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">is_element_less</span><span class="special">(</span><span class="keyword">const</span>
382 <span class="identifier">T</span><span class="special">&amp;,</span>
383 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
384 </p>
385 </td>
386 <td>
387 <p>
388 </p>
389 </td>
390 <td>
391 <p>
392 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
393 </p>
394 </td>
395 <td>
396 <p>
397 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
398 </p>
399 </td>
400 <td>
401 <p>
402 1
403 </p>
404 </td>
405 <td>
406 <p>
407 1
408 </p>
409 </td>
410 </tr>
411 <tr>
412 <td>
413 <p>
414 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">is_element_greater</span><span class="special">(</span><span class="keyword">const</span>
415 <span class="identifier">T</span><span class="special">&amp;,</span>
416 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
417 </p>
418 </td>
419 <td>
420 <p>
421 </p>
422 </td>
423 <td>
424 <p>
425 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a>
426 </p>
427 </td>
428 <td>
429 <p>
430 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
431 </p>
432 </td>
433 <td>
434 <p>
435 1
436 </p>
437 </td>
438 <td>
439 <p>
440 1
441 </p>
442 </td>
443 </tr>
444 <tr>
445 <td>
446 <p>
447 <span class="emphasis"><em>Distinct Equality</em></span>
448 </p>
449 </td>
450 <td>
451 <p>
452 </p>
453 </td>
454 <td>
455 <p>
456 </p>
457 </td>
458 <td>
459 <p>
460 </p>
461 </td>
462 <td>
463 <p>
464 </p>
465 </td>
466 <td>
467 <p>
468 </p>
469 </td>
470 </tr>
471 <tr>
472 <td>
473 <p>
474 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">is_distinct_equal</span><span class="special">(</span><span class="keyword">const</span>
475 <span class="identifier">T</span><span class="special">&amp;,</span>
476 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&amp;)</span></code>
477 </p>
478 </td>
479 <td>
480 <p>
481 </p>
482 </td>
483 <td>
484 <p>
485 </p>
486 </td>
487 <td>
488 <p>
489 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a>
490 </p>
491 </td>
492 <td>
493 <p>
494 </p>
495 </td>
496 <td>
497 <p>
498 1
499 </p>
500 </td>
501 </tr>
502 </tbody>
503 </table></div>
504 </div>
505 <div class="section boost_icl_function_reference_equivalences_and_orderings_less_on_intervals" lang="en">
506 <div class="titlepage"><div><div><h4 class="title">
507 <a name="boost_icl.function_reference.equivalences_and_orderings.less_on_intervals"></a><a class="link" href="equivalences_and_orderings.html#boost_icl.function_reference.equivalences_and_orderings.less_on_intervals" title="Less on Intervals">Less
508 on Intervals</a>
509 </h4></div></div></div>
510 <div class="informaltable"><table class="table">
511 <colgroup>
512 <col>
513 <col>
514 <col>
515 </colgroup>
516 <thead><tr>
517 <th>
518 <p>
519 </p>
520 </th>
521 <th>
522 <p>
523 Types
524 </p>
525 </th>
526 <th>
527 <p>
528 </p>
529 </th>
530 </tr></thead>
531 <tbody><tr>
532 <td>
533 <p>
534 <code class="computeroutput"><span class="identifier">x</span> <span class="special">&lt;</span>
535 <span class="identifier">y</span></code>
536 </p>
537 </td>
538 <td>
539 <p>
540 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a>
541 </p>
542 </td>
543 <td>
544 <p>
545 <code class="computeroutput"><span class="identifier">x</span></code> begins before
546 <code class="computeroutput"><span class="identifier">y</span></code> or, for equal
547 beginnings <code class="computeroutput"><span class="identifier">x</span></code> ends
548 before <code class="computeroutput"><span class="identifier">y</span></code>
549 </p>
550 </td>
551 </tr></tbody>
552 </table></div>
553 </div>
554 <div class="section boost_icl_function_reference_equivalences_and_orderings_lexicographical_ordering" lang="en">
555 <div class="titlepage"><div><div><h4 class="title">
556 <a name="boost_icl.function_reference.equivalences_and_orderings.lexicographical_ordering"></a><a class="link" href="equivalences_and_orderings.html#boost_icl.function_reference.equivalences_and_orderings.lexicographical_ordering" title="Lexicographical Ordering">Lexicographical
557 Ordering</a>
558 </h4></div></div></div>
559 <p>
560 All common equality and compare operators are defined for all objects of
561 the <span class="bold"><strong>icl</strong></span>. For all <span class="bold"><strong>icl</strong></span>
562 containers equality and compare operators implement lexicographical equality
563 and lexicographical comparison, that depends on the equality of template
564 parameter <code class="computeroutput"><span class="identifier">Compare</span></code>. This
565 includes the less ordering on intervals, that can be perceived as the sequence
566 of elements between their lower and upper bound. This generalized lexicogrphical
567 comparison in intervals can also be specified this way:
568 </p>
569 <div class="informaltable"><table class="table">
570 <colgroup>
571 <col>
572 <col>
573 <col>
574 </colgroup>
575 <thead><tr></tr></thead>
576 <tbody>
577 <tr>
578 <td>
579 <p>
580 <code class="computeroutput"><span class="identifier">x</span> <span class="special">&lt;</span>
581 <span class="identifier">y</span></code>
582 </p>
583 </td>
584 <td>
585 <p>
586 <code class="computeroutput"><span class="special">:=</span></code>
587 </p>
588 </td>
589 <td>
590 <p>
591 <code class="computeroutput"><span class="identifier">x</span></code> begins before
592 <code class="computeroutput"><span class="identifier">y</span></code> or, for equal
593 beginnings <code class="computeroutput"><span class="identifier">x</span></code> ends
594 before <code class="computeroutput"><span class="identifier">y</span></code>.
595 </p>
596 </td>
597 </tr>
598 <tr>
599 <td>
600 <p>
601 </p>
602 </td>
603 <td>
604 <p>
605 </p>
606 </td>
607 <td>
608 <p>
609 The other operators can be deduced in the usual way
610 </p>
611 </td>
612 </tr>
613 <tr>
614 <td>
615 <p>
616 <code class="computeroutput"><span class="identifier">x</span> <span class="special">&gt;</span>
617 <span class="identifier">y</span></code>
618 </p>
619 </td>
620 <td>
621 <p>
622 <code class="computeroutput"><span class="special">:=</span></code>
623 </p>
624 </td>
625 <td>
626 <p>
627 <code class="computeroutput"><span class="identifier">y</span> <span class="special">&lt;</span>
628 <span class="identifier">x</span></code>
629 </p>
630 </td>
631 </tr>
632 <tr>
633 <td>
634 <p>
635 <code class="computeroutput"><span class="identifier">x</span> <span class="special">&lt;=</span>
636 <span class="identifier">y</span></code>
637 </p>
638 </td>
639 <td>
640 <p>
641 <code class="computeroutput"><span class="special">:=</span></code>
642 </p>
643 </td>
644 <td>
645 <p>
646 <code class="computeroutput"><span class="special">!(</span><span class="identifier">y</span>
647 <span class="special">&lt;</span> <span class="identifier">x</span><span class="special">)</span></code>
648 </p>
649 </td>
650 </tr>
651 <tr>
652 <td>
653 <p>
654 <code class="computeroutput"><span class="identifier">x</span> <span class="special">&gt;=</span>
655 <span class="identifier">y</span></code>
656 </p>
657 </td>
658 <td>
659 <p>
660 <code class="computeroutput"><span class="special">:=</span></code>
661 </p>
662 </td>
663 <td>
664 <p>
665 <code class="computeroutput"><span class="special">!(</span><span class="identifier">x</span>
666 <span class="special">&lt;</span> <span class="identifier">y</span><span class="special">)</span></code>
667 </p>
668 </td>
669 </tr>
670 <tr>
671 <td>
672 <p>
673 <code class="computeroutput"><span class="identifier">x</span> <span class="special">==</span>
674 <span class="identifier">y</span></code>
675 </p>
676 </td>
677 <td>
678 <p>
679 <code class="computeroutput"><span class="special">:=</span></code>
680 </p>
681 </td>
682 <td>
683 <p>
684 <code class="computeroutput"><span class="special">!(</span><span class="identifier">x</span>
685 <span class="special">&lt;</span> <span class="identifier">y</span><span class="special">)</span> <span class="special">&amp;&amp;</span>
686 <span class="special">!(</span><span class="identifier">y</span>
687 <span class="special">&lt;</span> <span class="identifier">x</span><span class="special">)</span></code> induced equivalence
688 </p>
689 </td>
690 </tr>
691 <tr>
692 <td>
693 <p>
694 <code class="computeroutput"><span class="identifier">x</span> <span class="special">!=</span>
695 <span class="identifier">y</span></code>
696 </p>
697 </td>
698 <td>
699 <p>
700 <code class="computeroutput"><span class="special">:=</span></code>
701 </p>
702 </td>
703 <td>
704 <p>
705 <code class="computeroutput"><span class="special">!(</span><span class="identifier">x</span>
706 <span class="special">==</span> <span class="identifier">y</span><span class="special">)</span></code>
707 </p>
708 </td>
709 </tr>
710 </tbody>
711 </table></div>
712 <p>
713 Equality and compare operators are defined for all <span class="bold"><strong>icl</strong></span>
714 objects but there are no overloads between different types.
715 </p>
716 <p>
717 Containers of different segmentation are different, even if their elements
718 are the same:
719 </p>
720 <pre class="programlisting"><span class="identifier">split_interval_set</span><span class="special">&lt;</span><span class="identifier">time</span><span class="special">&gt;</span> <span class="identifier">w1</span><span class="special">,</span> <span class="identifier">w2</span><span class="special">;</span> <span class="comment">//Pseudocode
721 </span><span class="identifier">w1</span> <span class="special">=</span> <span class="special">{[</span><span class="identifier">Mon</span> <span class="special">..</span> <span class="identifier">Sun</span><span class="special">)};</span> <span class="comment">//split_interval_set containing a week
722 </span><span class="identifier">w2</span> <span class="special">=</span> <span class="special">{[</span><span class="identifier">Mon</span> <span class="special">..</span> <span class="identifier">Fri</span><span class="special">)[</span><span class="identifier">Sat</span> <span class="special">..</span> <span class="identifier">Sun</span><span class="special">)};</span> <span class="comment">//Same week split in work and week end parts.
723 </span><span class="identifier">w1</span> <span class="special">==</span> <span class="identifier">w2</span><span class="special">;</span> <span class="comment">//false: Different segmentation
724 </span><span class="identifier">is_element_equal</span><span class="special">(</span><span class="identifier">w1</span><span class="special">,</span><span class="identifier">w2</span><span class="special">);</span> <span class="comment">//true: Same elements contained
725 </span></pre>
726 <p>
727 </p>
728 <p>
729 <span class="bold"><strong>Complexity</strong></span> is <span class="emphasis"><em><span class="bold"><strong>linear</strong></span></em></span>
730 in the <code class="computeroutput"><span class="identifier">iterative_size</span></code> of
731 the shorter container to compare.
732 </p>
733 </div>
734 <div class="section boost_icl_function_reference_equivalences_and_orderings_sequential_element_ordering" lang="en">
735 <div class="titlepage"><div><div><h4 class="title">
736 <a name="boost_icl.function_reference.equivalences_and_orderings.sequential_element_ordering"></a><a class="link" href="equivalences_and_orderings.html#boost_icl.function_reference.equivalences_and_orderings.sequential_element_ordering" title="Sequential Element Ordering">Sequential
737 Element Ordering</a>
738 </h4></div></div></div>
739 <p>
740 The <span class="emphasis"><em><span class="bold"><strong>Sequential Element Ordering</strong></span></em></span>
741 abstracts from the way in which elements of interval containers are clustered
742 into intervals: it's <span class="emphasis"><em><span class="bold"><strong>segmentation</strong></span></em></span>.
743 </p>
744 <p>
745 So these equality and compare operations can be applied within interval
746 container types. The admissible type combinations are summarized in the
747 next overload table.
748 </p>
749 <p>
750
751 </p>
752 <pre class="programlisting"><span class="comment">// overload tables for
753 </span><span class="keyword">bool</span> <span class="identifier">is_element_equal</span> <span class="special">(</span><span class="keyword">const</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>
754 <span class="keyword">bool</span> <span class="identifier">is_element_less</span> <span class="special">(</span><span class="keyword">const</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>
755 <span class="keyword">bool</span> <span class="identifier">is_element_greater</span><span class="special">(</span><span class="keyword">const</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>
756
757 <span class="identifier">element</span> <span class="identifier">containers</span><span class="special">:</span> <span class="identifier">interval</span> <span class="identifier">containers</span><span class="special">:</span>
758 <span class="identifier">T</span><span class="special">\</span><span class="identifier">P</span><span class="special">|</span> <span class="identifier">s</span> <span class="identifier">m</span> <span class="identifier">T</span><span class="special">\</span><span class="identifier">P</span><span class="special">|</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>
759 <span class="special">---+----</span> <span class="special">---+---------------</span>
760 <span class="identifier">s</span> <span class="special">|</span> <span class="number">1</span> <span class="identifier">S1</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span>
761 <span class="identifier">m</span> <span class="special">|</span> <span class="number">1</span> <span class="identifier">S2</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span>
762 <span class="identifier">S3</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span>
763 <span class="identifier">M1</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span>
764 <span class="identifier">M3</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span>
765 </pre>
766 <p>
767 </p>
768 <p>
769 For element containers lexicographical equality and sequential element
770 equality are identical.
771 </p>
772 <p>
773 The <span class="bold"><strong>complexity</strong></span> of sequential element comparison
774 functions is <span class="emphasis"><em><span class="bold"><strong>linear</strong></span></em></span>
775 in the <code class="computeroutput"><span class="identifier">iterative_size</span></code> of
776 the larger container.
777 </p>
778 </div>
779 <div class="section boost_icl_function_reference_equivalences_and_orderings_distinct_equality" lang="en">
780 <div class="titlepage"><div><div><h4 class="title">
781 <a name="boost_icl.function_reference.equivalences_and_orderings.distinct_equality"></a><a class="link" href="equivalences_and_orderings.html#boost_icl.function_reference.equivalences_and_orderings.distinct_equality" title="Distinct Equality">Distinct
782 Equality</a>
783 </h4></div></div></div>
784 <p>
785 <span class="emphasis"><em><span class="bold"><strong>Distinct Equality</strong></span></em></span>
786 is an equality predicate that is available for <code class="computeroutput"><a class="link" href="../../boost/icl/map.html" title="Class template map">icl::maps</a></code>
787 and <code class="computeroutput"><a class="link" href="../../boost/icl/interval_map.html" title="Class template interval_map">interval_maps</a></code>.
788 It yields true, if two maps are sequential element equal except for value
789 pairs whose associated values are identity elements.
790 </p>
791 <p>
792 <span class="bold"><strong>Complexity</strong></span> is linear in the <code class="computeroutput"><span class="identifier">iterative_size</span></code> of the larger container
793 to compare.
794 </p>
795 </div>
796 <p>
797 <span class="emphasis"><em><span class="bold"><strong>See also . . .</strong></span></em></span>
798 </p>
799 <div class="informaltable"><table class="table">
800 <colgroup><col></colgroup>
801 <thead><tr></tr></thead>
802 <tbody><tr><td>
803 <p>
804 <a class="link" href="../semantics.html#boost_icl.semantics.orderings_and_equivalences" title="Orderings and Equivalences"><span class="emphasis"><em><span class="bold"><strong>Semantics</strong></span></em></span></a>
805 </p>
806 </td></tr></tbody>
807 </table></div>
808 <p>
809 <span class="emphasis"><em><span class="bold"><strong>Back to section . . .</strong></span></em></span>
810 </p>
811 <div class="informaltable"><table class="table">
812 <colgroup><col></colgroup>
813 <thead><tr></tr></thead>
814 <tbody>
815 <tr><td>
816 <p>
817 <a class="link" href="../interface/function_synopsis.html#function_synopsis_table"><span class="emphasis"><em><span class="bold"><strong>Function
818 Synopsis</strong></span></em></span></a>
819 </p>
820 </td></tr>
821 <tr><td>
822 <p>
823 <a class="link" href="../interface.html" title="Interface"><span class="emphasis"><em><span class="bold"><strong>Interface</strong></span></em></span></a>
824 </p>
825 </td></tr>
826 </tbody>
827 </table></div>
828 </div>
829 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
830 <td align="left"></td>
831 <td align="right"><div class="copyright-footer">Copyright &#169; 2007 -2010 Joachim Faulhaber<br>Copyright &#169; 1999 -2006 Cortex Software GmbH<p>
832 Distributed under the Boost Software License, Version 1.0. (See accompanying
833 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>)
834 </p>
835 </div></td>
836 </tr></table>
837 <hr>
838 <div class="spirit-nav">
839 <a accesskey="p" href="containedness.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="size.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
840 </div>
841 </body>
842 </html>