1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>Size</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="equivalences_and_orderings.html" title="Equivalences and Orderings"> 10<link rel="next" href="range.html" title="Range"> 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="equivalences_and_orderings.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="range.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.size"></a><a class="link" href="size.html" title="Size">Size</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>Size</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="identifier">size_type</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">size</span><span class="special">()</span><span class="keyword">const</span></code><br> 75 <code class="computeroutput"><span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">(</span><span class="keyword">const</span> 76 <span class="identifier">T</span><span class="special">&)</span></code> 77 </p> 78 </td> 79<td> 80 <p> 81 <span class="emphasis"><em>O(1)</em></span> 82 </p> 83 </td> 84<td> 85 <p> 86 <span class="emphasis"><em>O(n)</em></span> 87 </p> 88 </td> 89<td> 90 <p> 91 <span class="emphasis"><em>O(n)</em></span> 92 </p> 93 </td> 94<td> 95 <p> 96 <span class="emphasis"><em>O(1)</em></span> 97 </p> 98 </td> 99<td> 100 <p> 101 <span class="emphasis"><em>O(1)</em></span> 102 </p> 103 </td> 104</tr> 105<tr> 106<td> 107 <p> 108 <code class="computeroutput"><span class="identifier">size_type</span> <span class="identifier">cardinality</span><span class="special">(</span><span class="keyword">const</span> 109 <span class="identifier">T</span><span class="special">&)</span></code> 110 </p> 111 </td> 112<td> 113 <p> 114 <span class="emphasis"><em>O(1)</em></span> 115 </p> 116 </td> 117<td> 118 <p> 119 <span class="emphasis"><em>O(n)</em></span> 120 </p> 121 </td> 122<td> 123 <p> 124 <span class="emphasis"><em>O(n)</em></span> 125 </p> 126 </td> 127<td> 128 <p> 129 <span class="emphasis"><em>O(1)</em></span> 130 </p> 131 </td> 132<td> 133 <p> 134 <span class="emphasis"><em>O(1)</em></span> 135 </p> 136 </td> 137</tr> 138<tr> 139<td> 140 <p> 141 <code class="computeroutput"><span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&)</span></code> 142 </p> 143 </td> 144<td> 145 <p> 146 <span class="emphasis"><em>O(1)</em></span> 147 </p> 148 </td> 149<td> 150 <p> 151 <span class="emphasis"><em>O(n)</em></span> 152 </p> 153 </td> 154<td> 155 <p> 156 <span class="emphasis"><em>O(n)</em></span> 157 </p> 158 </td> 159<td> 160 </td> 161<td> 162 </td> 163</tr> 164<tr> 165<td> 166 <p> 167 <code class="computeroutput"><span class="identifier">size_type</span> <span class="identifier">iterative_size</span><span class="special">(</span><span class="keyword">const</span> 168 <span class="identifier">T</span><span class="special">&)</span></code> 169 </p> 170 </td> 171<td> 172 </td> 173<td> 174 <p> 175 <span class="emphasis"><em>O(1)</em></span> 176 </p> 177 </td> 178<td> 179 <p> 180 <span class="emphasis"><em>O(1)</em></span> 181 </p> 182 </td> 183<td> 184 <p> 185 <span class="emphasis"><em>O(1)</em></span> 186 </p> 187 </td> 188<td> 189 <p> 190 <span class="emphasis"><em>O(1)</em></span> 191 </p> 192 </td> 193</tr> 194<tr> 195<td> 196 <p> 197 <code class="computeroutput"><span class="identifier">size_type</span> <span class="identifier">interval_count</span><span class="special">(</span><span class="keyword">const</span> 198 <span class="identifier">T</span><span class="special">&)</span></code> 199 </p> 200 </td> 201<td> 202 </td> 203<td> 204 <p> 205 <span class="emphasis"><em>O(1)</em></span> 206 </p> 207 </td> 208<td> 209 <p> 210 <span class="emphasis"><em>O(1)</em></span> 211 </p> 212 </td> 213<td> 214 </td> 215<td> 216 </td> 217</tr> 218</tbody> 219</table></div> 220<p> 221 For <span class="bold"><strong>icl</strong></span> containers the single <code class="computeroutput"><span class="identifier">size</span></code> function known from std containers 222 branches into tree to five different members functions. The table above shows 223 the types, <code class="computeroutput"><span class="identifier">size</span></code> functions 224 are implemented for, together with their <span class="bold"><strong>complexities</strong></span>. 225 Linear complexities <span class="emphasis"><em>O(n)</em></span> refer to the container's <code class="computeroutput"><span class="identifier">iterative_size</span></code>: 226</p> 227<pre class="programlisting"><span class="identifier">n</span> <span class="special">=</span> <span class="identifier">y</span><span class="special">.</span><span class="identifier">iterative_size</span><span class="special">()</span> 228</pre> 229<p> 230 </p> 231<p> 232 The next table gives a short definition for the different size functions. 233 </p> 234<div class="informaltable"><table class="table"> 235<colgroup> 236<col> 237<col> 238<col> 239</colgroup> 240<thead><tr> 241<th> 242 <p> 243 <span class="emphasis"><em><span class="bold"><strong>Size</strong></span></em></span> 244 </p> 245 </th> 246<th> 247 <p> 248 Types 249 </p> 250 </th> 251<th> 252 <p> 253 Description 254 </p> 255 </th> 256</tr></thead> 257<tbody> 258<tr> 259<td> 260 <p> 261 <code class="computeroutput"><span class="identifier">size_type</span> <span class="identifier">interval_count</span><span class="special">(</span><span class="keyword">const</span> 262 <span class="identifier">T</span><span class="special">&)</span></code> 263 </p> 264 </td> 265<td> 266 <p> 267 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a> 268 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a> 269 </p> 270 </td> 271<td> 272 <p> 273 The number of intervals of an interval container. 274 </p> 275 </td> 276</tr> 277<tr> 278<td> 279 <p> 280 <code class="computeroutput"><span class="identifier">size_type</span> <span class="identifier">iterative_size</span><span class="special">(</span><span class="keyword">const</span> 281 <span class="identifier">T</span><span class="special">&)</span></code> 282 </p> 283 </td> 284<td> 285 <p> 286 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a> 287 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a> 288 <a class="link" href="../interface/function_synopsis.html#itl_set_type"><span class="bold"><strong>s</strong></span></a> 289 <a class="link" href="../interface/function_synopsis.html#itl_map_type"><span class="bold"><strong>m</strong></span></a> 290 </p> 291 </td> 292<td> 293 <p> 294 The number of objects in an icl container that can be iterated 295 over. 296 </p> 297 </td> 298</tr> 299<tr> 300<td> 301 <p> 302 <code class="computeroutput"><span class="identifier">difference_type</span> <span class="identifier">length</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&)</span></code> 303 </p> 304 </td> 305<td> 306 <p> 307 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a> 308 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a> 309 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a> 310 </p> 311 </td> 312<td> 313 <p> 314 The length of an interval or the sum of lengths of an interval 315 container's intervals, that's <code class="computeroutput"><span class="identifier">domain_type</span></code> 316 has a <code class="computeroutput"><span class="identifier">difference_type</span></code>. 317 </p> 318 </td> 319</tr> 320<tr> 321<td> 322 <p> 323 <code class="computeroutput"><span class="identifier">size_type</span> <span class="identifier">cardinality</span><span class="special">(</span><span class="keyword">const</span> 324 <span class="identifier">T</span><span class="special">&)</span></code> 325 </p> 326 </td> 327<td> 328 <p> 329 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a> 330 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a> 331 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a> 332 <a class="link" href="../interface/function_synopsis.html#itl_set_type"><span class="bold"><strong>s</strong></span></a> 333 <a class="link" href="../interface/function_synopsis.html#itl_map_type"><span class="bold"><strong>m</strong></span></a> 334 </p> 335 </td> 336<td> 337 <p> 338 The number of elements of an interval or a container. For continuous 339 data types cardinality can be <span class="emphasis"><em>infinite</em></span>. 340 </p> 341 </td> 342</tr> 343<tr> 344<td> 345 <p> 346 <code class="computeroutput"><span class="identifier">size_type</span> <span class="identifier">T</span><span class="special">::</span><span class="identifier">size</span><span class="special">()</span><span class="keyword">const</span></code><br> 347 <code class="computeroutput"><span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">(</span><span class="keyword">const</span> 348 <span class="identifier">T</span><span class="special">&)</span></code> 349 </p> 350 </td> 351<td> 352 <p> 353 <a class="link" href="../interface/function_synopsis.html#interval_type"><span class="bold"><strong>i</strong></span></a> 354 <a class="link" href="../interface/function_synopsis.html#interval_set_types"><span class="bold"><strong>S</strong></span></a> 355 <a class="link" href="../interface/function_synopsis.html#interval_map_types"><span class="bold"><strong>M</strong></span></a> 356 <a class="link" href="../interface/function_synopsis.html#itl_set_type"><span class="bold"><strong>s</strong></span></a> 357 <a class="link" href="../interface/function_synopsis.html#itl_map_type"><span class="bold"><strong>m</strong></span></a> 358 </p> 359 </td> 360<td> 361 <p> 362 The number of elements of an interval or a container, which is 363 also it's <code class="computeroutput"><span class="identifier">cardinality</span></code>. 364 </p> 365 </td> 366</tr> 367</tbody> 368</table></div> 369<p> 370 <span class="emphasis"><em><span class="bold"><strong>Back to section . . .</strong></span></em></span> 371 </p> 372<div class="informaltable"><table class="table"> 373<colgroup><col></colgroup> 374<thead><tr></tr></thead> 375<tbody> 376<tr><td> 377 <p> 378 <a class="link" href="../interface/function_synopsis.html#function_synopsis_table"><span class="emphasis"><em><span class="bold"><strong>Function 379 Synopsis</strong></span></em></span></a> 380 </p> 381 </td></tr> 382<tr><td> 383 <p> 384 <a class="link" href="../interface.html" title="Interface"><span class="emphasis"><em><span class="bold"><strong>Interface</strong></span></em></span></a> 385 </p> 386 </td></tr> 387</tbody> 388</table></div> 389</div> 390<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 391<td align="left"></td> 392<td align="right"><div class="copyright-footer">Copyright © 2007-2010 Joachim 393 Faulhaber<br>Copyright © 1999-2006 Cortex Software 394 GmbH<p> 395 Distributed under the Boost Software License, Version 1.0. (See accompanying 396 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>) 397 </p> 398</div></td> 399</tr></table> 400<hr> 401<div class="spirit-nav"> 402<a accesskey="p" href="equivalences_and_orderings.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="range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a> 403</div> 404</body> 405</html> 406