1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>Containedness</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="construct__copy__destruct.html" title="Construct, copy, destruct"> 10<link rel="next" href="equivalences_and_orderings.html" title="Equivalences and Orderings"> 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="construct__copy__destruct.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="equivalences_and_orderings.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.containedness"></a><a class="link" href="containedness.html" title="Containedness">Containedness</a> 28</h3></div></div></div> 29<div class="informaltable"><table class="table"> 30<colgroup> 31<col> 32<col> 33<col> 34<col> 35<col> 36<col> 37</colgroup> 38<thead><tr> 39<th> 40 <p> 41 <span class="emphasis"><em><span class="bold"><strong>Containedness</strong></span></em></span> 42 </p> 43 </th> 44<th> 45 <p> 46 intervals 47 </p> 48 </th> 49<th> 50 <p> 51 interval<br> sets 52 </p> 53 </th> 54<th> 55 <p> 56 interval<br> maps 57 </p> 58 </th> 59<th> 60 <p> 61 element<br> sets 62 </p> 63 </th> 64<th> 65 <p> 66 element<br> maps 67 </p> 68 </th> 69</tr></thead> 70<tbody> 71<tr> 72<td> 73 <p> 74 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">empty</span><span class="special">()</span><span class="keyword">const</span></code> 75 </p> 76 </td> 77<td> 78 </td> 79<td> 80 <p> 81 1 82 </p> 83 </td> 84<td> 85 <p> 86 1 87 </p> 88 </td> 89<td> 90 <p> 91 1 92 </p> 93 </td> 94<td> 95 <p> 96 1 97 </p> 98 </td> 99</tr> 100<tr> 101<td> 102 <p> 103 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">is_empty</span><span class="special">(</span><span class="keyword">const</span> 104 <span class="identifier">T</span><span class="special">&)</span></code> 105 </p> 106 </td> 107<td> 108 <p> 109 1 110 </p> 111 </td> 112<td> 113 <p> 114 1 115 </p> 116 </td> 117<td> 118 <p> 119 1 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</tr> 133<tr> 134<td> 135 <p> 136 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">contains</span><span class="special">(</span><span class="keyword">const</span> 137 <span class="identifier">T</span><span class="special">&,</span> 138 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&)</span></code><br> <code class="computeroutput"><span class="keyword">bool</span> 139 <span class="identifier">within</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&,</span> <span class="keyword">const</span> 140 <span class="identifier">T</span><span class="special">&)</span></code> 141 </p> 142 </td> 143<td> 144 <p> 145 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a> 146 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a> 147 </p> 148 </td> 149<td> 150 <p> 151 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a> 152 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a> 153 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a> 154 </p> 155 </td> 156<td> 157 <p> 158 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a> 159 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a> 160 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a> 161 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a> 162 <a class="link" href="../interface/function_synopsis.html#interval_mapping_type"><span class="bold"><strong>p</strong></span></a> 163 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a> 164 </p> 165 </td> 166<td> 167 <p> 168 <a class="link" href="../interface/function_synopsis.html#element_type"><span class="bold"><strong>e</strong></span></a> 169 <a class="link" href="../interface/function_synopsis.html#itl_set_type"><span class="bold"><strong>s</strong></span></a> 170 </p> 171 </td> 172<td> 173 <p> 174 <a class="link" href="../interface/function_synopsis.html#element_mapping_type"><span class="bold"><strong>b</strong></span></a> 175 <a class="link" href="../interface/function_synopsis.html#itl_map_type"><span class="bold"><strong>m</strong></span></a> 176 </p> 177 </td> 178</tr> 179</tbody> 180</table></div> 181<p> 182 This group of functions refers to <span class="emphasis"><em><span class="bold"><strong>contain</strong></span></em></span>edness 183 which should be fundamental to <span class="emphasis"><em><span class="bold"><strong>contain</strong></span></em></span>ers. 184 The function <code class="computeroutput"><span class="identifier">contains</span></code> is 185 overloaded. It covers different kinds of containedness: Containedness of 186 elements, segments, and sub containers. 187 </p> 188<div class="informaltable"><table class="table"> 189<colgroup> 190<col> 191<col> 192<col> 193</colgroup> 194<thead><tr> 195<th> 196 <p> 197 <span class="emphasis"><em><span class="bold"><strong>Containedness</strong></span></em></span> 198 </p> 199 </th> 200<th> 201 <p> 202 <span class="emphasis"><em>O(...)</em></span> 203 </p> 204 </th> 205<th> 206 <p> 207 Description 208 </p> 209 </th> 210</tr></thead> 211<tbody> 212<tr> 213<td> 214 <p> 215 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">empty</span><span class="special">()</span><span class="keyword">const</span></code><br> 216 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">is_empty</span><span class="special">(</span><span class="keyword">const</span> 217 <span class="identifier">T</span><span class="special">&)</span></code> 218 </p> 219 </td> 220<td> 221 <p> 222 <span class="emphasis"><em>O(1)</em></span> 223 </p> 224 </td> 225<td> 226 <p> 227 Returns <code class="computeroutput"><span class="keyword">true</span></code>, if the 228 container is empty, <code class="computeroutput"><span class="keyword">false</span></code> 229 otherwise. 230 </p> 231 </td> 232</tr> 233<tr> 234<td> 235 <p> 236 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">contains</span><span class="special">(</span><span class="keyword">const</span> 237 <span class="identifier">T</span><span class="special">&,</span> 238 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&)</span></code><br> <code class="computeroutput"><span class="keyword">bool</span> 239 <span class="identifier">within</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&,</span> <span class="keyword">const</span> 240 <span class="identifier">T</span><span class="special">&)</span></code> 241 </p> 242 </td> 243<td> 244 <p> 245 <a class="link" href="containedness.html#complexities_contains"><span class="emphasis"><em>see below</em></span></a> 246 </p> 247 </td> 248<td> 249 <p> 250 Returns <code class="computeroutput"><span class="keyword">true</span></code>, if 251 <code class="computeroutput"><span class="identifier">super</span></code> container 252 contains object <code class="computeroutput"><span class="identifier">sub</span></code>. 253 </p> 254 </td> 255</tr> 256<tr> 257<td> 258 </td> 259<td> 260 <p> 261 where 262 </p> 263 </td> 264<td> 265 <p> 266 <span class="emphasis"><em>n</em></span><code class="computeroutput"> <span class="special">=</span> 267 <span class="identifier">iterative_size</span><span class="special">(</span><span class="identifier">sub</span><span class="special">)</span></code> 268 </p> 269 </td> 270</tr> 271<tr> 272<td> 273 </td> 274<td> 275 </td> 276<td> 277 <p> 278 <span class="emphasis"><em>m</em></span><code class="computeroutput"> <span class="special">=</span> 279 <span class="identifier">iterative_size</span><span class="special">(</span><span class="identifier">super</span><span class="special">)</span></code> 280 </p> 281 </td> 282</tr> 283</tbody> 284</table></div> 285<p> 286</p> 287<pre class="programlisting"><span class="comment">// overload tables for </span> 288<span class="keyword">bool</span> <span class="identifier">contains</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">super</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&</span> <span class="identifier">sub</span><span class="special">)</span> 289<span class="keyword">bool</span> <span class="identifier">within</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&</span> <span class="identifier">sub</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">super</span><span class="special">)</span> 290 291<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> 292<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">b</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">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> 293<span class="special">--------+---</span> <span class="special">--------+-------</span> 294 <span class="identifier">s</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="identifier">S</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span> 295 <span class="identifier">m</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span> <span class="identifier">M</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span> 296</pre> 297<p> 298 </p> 299<p> 300 The overloads of <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">contains</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">super</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&</span> <span class="identifier">sup</span><span class="special">)</span></code> cover various kinds of containedness. We 301 can group them into a part (1) that checks if an element, a segment or a 302 container <span class="emphasis"><em>of same kinds</em></span> is contained in an element or 303 interval container 304 </p> 305<p> 306</p> 307<pre class="programlisting"><span class="comment">// (1) containedness of elements, segments or containers of same kind</span> 308<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">b</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">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> 309<span class="special">---+--------</span> <span class="special">---+------------</span> 310 <span class="identifier">s</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="identifier">S</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span> 311 <span class="identifier">m</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="identifier">M</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span> 312</pre> 313<p> 314 </p> 315<p> 316 and another part (2) that checks the containedness of <span class="emphasis"><em>key objects</em></span>, 317 which can be <span class="emphasis"><em>elements</em></span> an <span class="emphasis"><em>intervals</em></span> 318 or a <span class="emphasis"><em>sets</em></span>. 319 </p> 320<p> 321</p> 322<pre class="programlisting"><span class="comment">// (2) containedness of key objects.</span> 323<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">b</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">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> 324<span class="special">---+--------</span> <span class="special">---+------------</span> 325 <span class="identifier">s</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="identifier">S</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span> 326 <span class="identifier">m</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="identifier">M</span> <span class="special">|</span> <span class="number">1</span> <span class="number">1</span> <span class="number">1</span> 327</pre> 328<p> 329 </p> 330<p> 331 For type <span class="bold"><strong>m</strong></span> = <code class="computeroutput"><a class="link" href="../../boost/icl/map.html" title="Class template map">icl::map</a></code>, 332 a key element (<span class="bold"><strong>m</strong></span><code class="computeroutput"><span class="special">::</span><span class="identifier">domain_type</span></code>) and an <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> 333 </a> (<span class="bold"><strong>m</strong></span><code class="computeroutput"><span class="special">::</span><span class="identifier">set_type</span></code>) can be a <span class="emphasis"><em><span class="bold"><strong>key object</strong></span></em></span>. 334 </p> 335<p> 336 For an interval map type <span class="bold"><strong>M</strong></span>, a key element 337 (<span class="bold"><strong>M</strong></span><code class="computeroutput"><span class="special">::</span><span class="identifier">domain_type</span></code>), an interval (<span class="bold"><strong>M</strong></span><code class="computeroutput"><span class="special">::</span><span class="identifier">interval_type</span></code>) 338 and an <span class="emphasis"><em><span class="bold"><strong>interval set</strong></span></em></span>, 339 can be <span class="emphasis"><em><span class="bold"><strong>key objects</strong></span></em></span>. 340 </p> 341<p> 342 <a name="complexities_contains"></a>Complexity characteristics for function 343 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">contains</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">super</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&</span> <span class="identifier">sub</span><span class="special">)</span><span class="keyword">const</span></code> are 344 given by the next tables where 345</p> 346<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">super</span><span class="special">);</span> 347<span class="identifier">m</span> <span class="special">=</span> <span class="identifier">iterative_size</span><span class="special">(</span><span class="identifier">sub</span><span class="special">);</span> <span class="comment">//if P is a container type</span> 348</pre> 349<p> 350 </p> 351<div class="table"> 352<a name="boost_icl.function_reference.containedness.t0"></a><p class="title"><b>Table 1.19. Time Complexity for function contains on element containers</b></p> 353<div class="table-contents"><table class="table" summary="Time Complexity for function contains on element containers"> 354<colgroup> 355<col> 356<col> 357<col> 358<col> 359<col> 360</colgroup> 361<thead><tr> 362<th> 363 <p> 364 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">contains</span><span class="special">(</span><span class="keyword">const</span> 365 <span class="identifier">T</span><span class="special">&</span> 366 <span class="identifier">super</span><span class="special">,</span> 367 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&</span> <span class="identifier">sub</span><span class="special">)</span></code><br> <code class="computeroutput"><span class="keyword">bool</span> 368 <span class="identifier">within</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&</span> <span class="identifier">sub</span><span class="special">,</span> <span class="keyword">const</span> 369 <span class="identifier">T</span><span class="special">&</span> 370 <span class="identifier">super</span><span class="special">)</span></code> 371 </p> 372 </th> 373<th> 374 <p> 375 domain<br> type 376 </p> 377 </th> 378<th> 379 <p> 380 domain<br> mapping<br> type 381 </p> 382 </th> 383<th> 384 <p> 385 std::set 386 </p> 387 </th> 388<th> 389 <p> 390 icl::map 391 </p> 392 </th> 393</tr></thead> 394<tbody> 395<tr> 396<td> 397 <p> 398 <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> 399 </p> 400 </td> 401<td> 402 <p> 403 <span class="emphasis"><em>O(log n)</em></span> 404 </p> 405 </td> 406<td> 407 </td> 408<td> 409 <p> 410 <span class="emphasis"><em>O(m log n)</em></span> 411 </p> 412 </td> 413<td> 414 </td> 415</tr> 416<tr> 417<td> 418 <p> 419 <code class="computeroutput"><a class="link" href="../../boost/icl/map.html" title="Class template map">icl::map</a></code> 420 </p> 421 </td> 422<td> 423 <p> 424 <span class="emphasis"><em>O(log n)</em></span> 425 </p> 426 </td> 427<td> 428 <p> 429 <span class="emphasis"><em>O(log n)</em></span> 430 </p> 431 </td> 432<td> 433 <p> 434 <span class="emphasis"><em>O(m log n)</em></span> 435 </p> 436 </td> 437<td> 438 <p> 439 <span class="emphasis"><em>O(m log n)</em></span> 440 </p> 441 </td> 442</tr> 443</tbody> 444</table></div> 445</div> 446<br class="table-break"><div class="table"> 447<a name="boost_icl.function_reference.containedness.t1"></a><p class="title"><b>Table 1.20. Time Complexity for functions contains and within on interval containers</b></p> 448<div class="table-contents"><table class="table" summary="Time Complexity for functions contains and within on interval containers"> 449<colgroup> 450<col> 451<col> 452<col> 453<col> 454<col> 455<col> 456<col> 457<col> 458</colgroup> 459<thead><tr> 460<th> 461 <p> 462 <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">contains</span><span class="special">(</span><span class="keyword">const</span> 463 <span class="identifier">T</span><span class="special">&</span> 464 <span class="identifier">super</span><span class="special">,</span> 465 <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&</span> <span class="identifier">sub</span><span class="special">)</span></code><br> <code class="computeroutput"><span class="keyword">bool</span> 466 <span class="identifier">within</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&</span> <span class="identifier">sub</span><span class="special">,</span> <span class="keyword">const</span> 467 <span class="identifier">T</span><span class="special">&</span> 468 <span class="identifier">super</span><span class="special">)</span></code> 469 </p> 470 </th> 471<th> 472 </th> 473<th> 474 <p> 475 domain<br> type 476 </p> 477 </th> 478<th> 479 <p> 480 interval<br> type 481 </p> 482 </th> 483<th> 484 <p> 485 domain<br> mapping<br> type 486 </p> 487 </th> 488<th> 489 <p> 490 interval<br> mapping<br> type 491 </p> 492 </th> 493<th> 494 <p> 495 interval<br> sets 496 </p> 497 </th> 498<th> 499 <p> 500 interval<br> maps 501 </p> 502 </th> 503</tr></thead> 504<tbody> 505<tr> 506<td> 507 <p> 508 interval_sets 509 </p> 510 </td> 511<td> 512 <p> 513 <code class="computeroutput"><a class="link" href="../../boost/icl/interval_set.html" title="Class template interval_set">interval_set</a></code> 514 </p> 515 </td> 516<td> 517 <p> 518 <span class="emphasis"><em>O(log n)</em></span> 519 </p> 520 </td> 521<td> 522 <p> 523 <span class="emphasis"><em>O(log n)</em></span> 524 </p> 525 </td> 526<td> 527 </td> 528<td> 529 </td> 530<td> 531 <p> 532 <span class="emphasis"><em>O(m log n)</em></span> 533 </p> 534 </td> 535<td> 536 </td> 537</tr> 538<tr> 539<td> 540 </td> 541<td> 542 <p> 543 <code class="computeroutput"><a class="link" href="../../boost/icl/separate_interval_set.html" title="Class template separate_interval_set">separate_interval_set</a></code><br> 544 <code class="computeroutput"><a class="link" href="../../boost/icl/split_interval_set.html" title="Class template split_interval_set">split_interval_set</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(n)</em></span> 555 </p> 556 </td> 557<td> 558 </td> 559<td> 560 </td> 561<td> 562 <p> 563 <span class="emphasis"><em>O(m log n)</em></span> 564 </p> 565 </td> 566<td> 567 </td> 568</tr> 569<tr> 570<td> 571 <p> 572 interval_maps 573 </p> 574 </td> 575<td> 576 <p> 577 <code class="computeroutput"><a class="link" href="../../boost/icl/interval_map.html" title="Class template interval_map">interval_map</a></code> 578 </p> 579 </td> 580<td> 581 <p> 582 <span class="emphasis"><em>O(log n)</em></span> 583 </p> 584 </td> 585<td> 586 <p> 587 <span class="emphasis"><em>O(log n)</em></span> 588 </p> 589 </td> 590<td> 591 <p> 592 <span class="emphasis"><em>O(log n)</em></span> 593 </p> 594 </td> 595<td> 596 <p> 597 <span class="emphasis"><em>O(log n)</em></span> 598 </p> 599 </td> 600<td> 601 <p> 602 <span class="emphasis"><em>O(m log n)</em></span> 603 </p> 604 </td> 605<td> 606 <p> 607 <span class="emphasis"><em>O(m log n)</em></span> 608 </p> 609 </td> 610</tr> 611<tr> 612<td> 613 </td> 614<td> 615 <p> 616 <code class="computeroutput"><a class="link" href="../../boost/icl/split_interval_map.html" title="Class template split_interval_map">split_interval_map</a></code> 617 </p> 618 </td> 619<td> 620 <p> 621 <span class="emphasis"><em>O(log n)</em></span> 622 </p> 623 </td> 624<td> 625 <p> 626 <span class="emphasis"><em>O(n)</em></span> 627 </p> 628 </td> 629<td> 630 <p> 631 <span class="emphasis"><em>O(log n)</em></span> 632 </p> 633 </td> 634<td> 635 <p> 636 <span class="emphasis"><em>O(n)</em></span> 637 </p> 638 </td> 639<td> 640 <p> 641 <span class="emphasis"><em>O(m log n)</em></span> 642 </p> 643 </td> 644<td> 645 <p> 646 <span class="emphasis"><em>O(m log n)</em></span> 647 </p> 648 </td> 649</tr> 650</tbody> 651</table></div> 652</div> 653<br class="table-break"><p> 654 All overloads of containedness of containers in containers 655</p> 656<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">contains</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">super</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">P</span><span class="special">&</span> <span class="identifier">sub</span><span class="special">)</span> 657<span class="keyword">bool</span> <span class="identifier">within</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">P</span><span class="special">&</span> <span class="identifier">sub</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">super</span><span class="special">)</span> 658</pre> 659<p> 660 are of <span class="emphasis"><em><span class="bold"><strong>loglinear</strong></span></em></span> time: 661 <span class="emphasis"><em>O(m log n)</em></span>. If both containers have same iterative_sizes 662 so that <span class="emphasis"><em>m = n</em></span> we have the worst case ( <span class="emphasis"><em>O(n 663 log n)</em></span> ). There is an alternative implementation that has a <span class="emphasis"><em><span class="bold"><strong>linear</strong></span></em></span> complexity of <span class="emphasis"><em>O(n+m)</em></span>. 664 The loglinear implementation has been chosen, because it can be faster, if 665 the container argument is small. In this case the loglinear implementation 666 approaches logarithmic behavior, whereas the linear implementation stays 667 linear. 668 </p> 669<p> 670 <span class="emphasis"><em><span class="bold"><strong>Back to section . . .</strong></span></em></span> 671 </p> 672<div class="informaltable"><table class="table"> 673<colgroup><col></colgroup> 674<thead><tr></tr></thead> 675<tbody> 676<tr><td> 677 <p> 678 <a class="link" href="../interface/function_synopsis.html#function_synopsis_table"><span class="emphasis"><em><span class="bold"><strong>Function 679 Synopsis</strong></span></em></span></a> 680 </p> 681 </td></tr> 682<tr><td> 683 <p> 684 <a class="link" href="../interface.html" title="Interface"><span class="emphasis"><em><span class="bold"><strong>Interface</strong></span></em></span></a> 685 </p> 686 </td></tr> 687</tbody> 688</table></div> 689</div> 690<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 691<td align="left"></td> 692<td align="right"><div class="copyright-footer">Copyright © 2007-2010 Joachim 693 Faulhaber<br>Copyright © 1999-2006 Cortex Software 694 GmbH<p> 695 Distributed under the Boost Software License, Version 1.0. (See accompanying 696 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>) 697 </p> 698</div></td> 699</tr></table> 700<hr> 701<div class="spirit-nav"> 702<a accesskey="p" href="construct__copy__destruct.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="equivalences_and_orderings.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> 703</div> 704</body> 705</html> 706