/Src/Dependencies/Boost/libs/icl/doc/html/boost/icl/interval_base_set.html

http://hadesmem.googlecode.com/ · HTML · 300 lines · 295 code · 5 blank · 0 comment · 0 complexity · 5331237b21984b7c8fcab666476c0007 MD5 · raw file

Large files are truncated click here to view the full file

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
  4. <title>Class template interval_base_set</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="../../header/boost/icl/interval_base_set_hpp.html" title="Header &lt;boost/icl/interval_base_set.hpp&gt;">
  9. <link rel="prev" href="../../header/boost/icl/interval_base_set_hpp.html" title="Header &lt;boost/icl/interval_base_set.hpp&gt;">
  10. <link rel="next" href="is_set_icl_interval_bas_id653687.html" title="Struct template is_set&lt;icl::interval_base_set&lt; SubType, DomainT, Compare, Interval, Alloc &gt;&gt;">
  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="../../header/boost/icl/interval_base_set_hpp.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../header/boost/icl/interval_base_set_hpp.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="is_set_icl_interval_bas_id653687.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
  24. </div>
  25. <div class="refentry" lang="en">
  26. <a name="boost.icl.interval_base_set"></a><div class="titlepage"></div>
  27. <div class="refnamediv">
  28. <h2><span class="refentrytitle">Class template interval_base_set</span></h2>
  29. <p>boost::icl::interval_base_set &#8212; Implements a set as a set of intervals (base class). </p>
  30. </div>
  31. <h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
  32. <div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../header/boost/icl/interval_base_set_hpp.html" title="Header &lt;boost/icl/interval_base_set.hpp&gt;">boost/icl/interval_base_set.hpp</a>&gt;
  33. </span><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> SubType<span class="special">,</span> <span class="keyword">typename</span> DomainT<span class="special">,</span>
  34. <span class="identifier">ICL_COMPARE</span> Compare <span class="special">=</span> <span class="identifier">ICL_COMPARE_INSTANCE</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span><span class="special">,</span> <span class="identifier">DomainT</span><span class="special">)</span><span class="special">,</span>
  35. <span class="identifier">ICL_INTERVAL</span><span class="special">(</span><span class="identifier">ICL_COMPARE</span><span class="special">)</span> Interval <span class="special">=</span> <span class="identifier">ICL_INTERVAL_INSTANCE</span><span class="special">(</span><span class="identifier">ICL_INTERVAL_DEFAULT</span><span class="special">,</span> <span class="identifier">DomainT</span><span class="special">,</span> <span class="identifier">Compare</span><span class="special">)</span><span class="special">,</span>
  36. <span class="identifier">ICL_ALLOC</span> Alloc <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&gt;</span>
  37. <span class="keyword">class</span> <a class="link" href="interval_base_set.html" title="Class template interval_base_set">interval_base_set</a> <span class="special">{</span>
  38. <span class="keyword">public</span><span class="special">:</span>
  39. <span class="comment">// types</span>
  40. <span class="keyword">typedef</span> <a class="link" href="interval_base_set.html" title="Class template interval_base_set">interval_base_set</a><span class="special">&lt;</span> <span class="identifier">SubType</span><span class="special">,</span> <span class="identifier">DomainT</span><span class="special">,</span> <span class="identifier">Compare</span><span class="special">,</span> <span class="identifier">Interval</span><span class="special">,</span> <span class="identifier">Alloc</span> <span class="special">&gt;</span> <a name="boost.icl.interval_base_set.type"></a><span class="identifier">type</span><span class="special">;</span>
  41. <span class="keyword">typedef</span> <span class="identifier">SubType</span> <a name="boost.icl.interval_base_set.sub_type"></a><span class="identifier">sub_type</span><span class="special">;</span> <span class="comment">// The designated <span class="emphasis"><em>derived</em></span> or <span class="emphasis"><em>sub_type</em></span> of this base class. </span>
  42. <span class="keyword">typedef</span> <a class="link" href="interval_base_set.html#boost.icl.interval_base_set.type">type</a> <a name="boost.icl.interval_base_set.overloadable_type"></a><span class="identifier">overloadable_type</span><span class="special">;</span> <span class="comment">// Auxilliary type for overloadresolution. </span>
  43. <span class="keyword">typedef</span> <span class="identifier">DomainT</span> <a name="boost.icl.interval_base_set.domain_type"></a><span class="identifier">domain_type</span><span class="special">;</span> <span class="comment">// The domain type of the set. </span>
  44. <span class="keyword">typedef</span> <span class="identifier">DomainT</span> <a name="boost.icl.interval_base_set.codomain_type"></a><span class="identifier">codomain_type</span><span class="special">;</span> <span class="comment">// The codomaintype is the same as domain_type. </span>
  45. <span class="keyword">typedef</span> <span class="identifier">DomainT</span> <a name="boost.icl.interval_base_set.element_type"></a><span class="identifier">element_type</span><span class="special">;</span> <span class="comment">// The element type of the set. </span>
  46. <span class="keyword">typedef</span> <span class="identifier">interval_type</span> <a name="boost.icl.interval_base_set.segment_type"></a><span class="identifier">segment_type</span><span class="special">;</span> <span class="comment">// The segment type of the set. </span>
  47. <span class="keyword">typedef</span> <span class="identifier">difference_type_of</span><span class="special">&lt;</span> <span class="identifier">domain_type</span> <span class="special">&gt;</span><span class="special">::</span><a class="link" href="interval_base_set.html#boost.icl.interval_base_set.type">type</a> <a name="boost.icl.interval_base_set.difference_type"></a><span class="identifier">difference_type</span><span class="special">;</span> <span class="comment">// The difference type of an interval which is sometimes different form the data_type. </span>
  48. <span class="keyword">typedef</span> <span class="identifier">size_type_of</span><span class="special">&lt;</span> <span class="identifier">domain_type</span> <span class="special">&gt;</span><span class="special">::</span><a class="link" href="interval_base_set.html#boost.icl.interval_base_set.type">type</a> <a name="boost.icl.interval_base_set.size_type"></a><span class="identifier">size_type</span><span class="special">;</span> <span class="comment">// The size type of an interval which is mostly std::size_t. </span>
  49. <span class="keyword">typedef</span> <span class="identifier">exclusive_less_than</span><span class="special">&lt;</span> <span class="identifier">interval_type</span> <span class="special">&gt;</span> <a name="boost.icl.interval_base_set.interval_compare"></a><span class="identifier">interval_compare</span><span class="special">;</span> <span class="comment">// Comparison functor for intervals. </span>
  50. <span class="keyword">typedef</span> <span class="identifier">exclusive_less_than</span><span class="special">&lt;</span> <span class="identifier">interval_type</span> <span class="special">&gt;</span> <a name="boost.icl.interval_base_set.key_compare"></a><span class="identifier">key_compare</span><span class="special">;</span> <span class="comment">// Comparison functor for keys. </span>
  51. <span class="keyword">typedef</span> <span class="identifier">ICL_IMPL_SPACE</span><span class="special">::</span><span class="identifier">set</span><span class="special">&lt;</span> <span class="identifier">DomainT</span><span class="special">,</span> <span class="identifier">domain_compare</span><span class="special">,</span> <span class="identifier">Alloc</span><span class="special">&lt;</span> <span class="identifier">DomainT</span> <span class="special">&gt;</span> <span class="special">&gt;</span> <a name="boost.icl.interval_base_set.atomized_type"></a><span class="identifier">atomized_type</span><span class="special">;</span> <span class="comment">// The atomized type representing the corresponding container of elements. </span>
  52. <span class="keyword">typedef</span> <span class="identifier">Alloc</span><span class="special">&lt;</span> <span class="identifier">interval_type</span> <span class="special">&gt;</span> <a name="boost.icl.interval_base_set.allocator_type"></a><span class="identifier">allocator_type</span><span class="special">;</span> <span class="comment">// The allocator type of the set. </span>
  53. <span class="keyword">typedef</span> <span class="identifier">Alloc</span><span class="special">&lt;</span> <span class="identifier">DomainT</span> <span class="special">&gt;</span> <a name="boost.icl.interval_base_set.domain_allocator_type"></a><span class="identifier">domain_allocator_type</span><span class="special">;</span> <span class="comment">// allocator type of the corresponding element set </span>
  54. <span class="keyword">typedef</span> <span class="identifier">ICL_IMPL_SPACE</span><span class="special">::</span><span class="identifier">set</span><span class="special">&lt;</span> <span class="identifier">interval_type</span><span class="special">,</span> <span class="identifier">key_compare</span><span class="special">,</span> <span class="identifier">allocator_type</span> <span class="special">&gt;</span> <a name="boost.icl.interval_base_set.ImplSetT"></a><span class="identifier">ImplSetT</span><span class="special">;</span> <span class="comment">// Container type for the implementation. </span>
  55. <span class="keyword">typedef</span> <span class="identifier">ImplSetT</span><span class="special">::</span><span class="identifier">key_type</span> <a name="boost.icl.interval_base_set.key_type"></a><span class="identifier">key_type</span><span class="special">;</span> <span class="comment">// key type of the implementing container </span>
  56. <span class="keyword">typedef</span> <span class="identifier">ImplSetT</span><span class="special">::</span><span class="identifier">key_type</span> <a name="boost.icl.interval_base_set.data_type"></a><span class="identifier">data_type</span><span class="special">;</span> <span class="comment">// data type of the implementing container </span>
  57. <span class="keyword">typedef</span> <span class="identifier">ImplSetT</span><span class="special">::</span><span class="identifier">value_type</span> <a name="boost.icl.interval_base_set.value_type"></a><span class="identifier">value_type</span><span class="special">;</span> <span class="comment">// value type of the implementing container </span>
  58. <span class="keyword">typedef</span> <span class="identifier">ImplSetT</span><span class="special">::</span><span class="identifier">pointer</span> <a name="boost.icl.interval_base_set.pointer"></a><span class="identifier">pointer</span><span class="special">;</span> <span class="comment">// pointer type </span>
  59. <span class="keyword">typedef</span> <span class="identifier">ImplSetT</span><span class="special">::</span><span class="identifier">const_pointer</span> <a name="boost.icl.interval_base_set.const_pointer"></a><span class="identifier">const_pointer</span><span class="special">;</span> <span class="comment">// const pointer type </span>
  60. <span class="keyword">typedef</span> <span class="identifier">ImplSetT</span><span class="special">::</span><span class="identifier">reference</span> <a name="boost.icl.interval_base_set.reference"></a><span class="identifier">reference</span><span class="special">;</span> <span class="comment">// reference type </span>
  61. <span class="keyword">typedef</span> <span class="identifier">ImplSetT</span><span class="special">::</span><span class="identifier">const_reference</span> <a name="boost.icl.interval_base_set.const_reference"></a><span class="identifier">const_reference</span><span class="special">;</span> <span class="comment">// const reference type </span>
  62. <span class="keyword">typedef</span> <span class="identifier">ImplSetT</span><span class="special">::</span><span class="identifier">iterator</span> <a name="boost.icl.interval_base_set.iterator"></a><span class="identifier">iterator</span><span class="special">;</span> <span class="comment">// iterator for iteration over intervals </span>
  63. <span class="keyword">typedef</span> <span class="identifier">ImplSetT</span><span class="special">::</span><span class="identifier">const_iterator</span> <a name="boost.icl.interval_base_set.const_iterator"></a><span class="identifier">const_iterator</span><span class="special">;</span> <span class="comment">// const_iterator for iteration over intervals </span>
  64. <span class="keyword">typedef</span> <span class="identifier">ImplSetT</span><span class="special">::</span><span class="identifier">reverse_iterator</span> <a name="boost.icl.interval_base_set.reverse_iterator"></a><span class="identifier">reverse_iterator</span><span class="special">;</span> <span class="comment">// iterator for reverse iteration over intervals </span>
  65. <span class="keyword">typedef</span> <span class="identifier">ImplSetT</span><span class="special">::</span><span class="identifier">const_reverse_iterator</span> <a name="boost.icl.interval_base_set.const_reverse_iterator"></a><span class="identifier">const_reverse_iterator</span><span class="special">;</span> <span class="comment">// const_iterator for iteration over intervals </span>
  66. <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">icl</span><span class="special">::</span><span class="identifier">element_iterator</span><span class="special">&lt;</span> <span class="identifier">iterator</span> <span class="special">&gt;</span> <a name="boost.icl.interval_base_set.element_iterator"></a><span class="identifier">element_iterator</span><span class="special">;</span> <span class="comment">// element iterator: Depreciated, see documentation. </span>
  67. <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">icl</span><span class="special">::</span><span class="identifier">element_iterator</span><span class="special">&lt;</span> <span class="identifier">const_iterator</span> <span class="special">&gt;</span> <a name="boost.icl.interval_base_set.element_const_iterator"></a><span class="identifier">element_const_iterator</span><span class="special">;</span> <span class="comment">// element const iterator: Depreciated, see documentation. </span>
  68. <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">icl</span><span class="special">::</span><span class="identifier">element_iterator</span><span class="special">&lt;</span> <span class="identifier">reverse_iterator</span> <span class="special">&gt;</span> <a name="boost.icl.interval_base_set.element_reverse_iterator"></a><span class="identifier">element_reverse_iterator</span><span class="special">;</span> <span class="comment">// element reverse iterator: Depreciated, see documentation. </span>
  69. <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">icl</span><span class="special">::</span><span class="identifier">element_iterator</span><span class="special">&lt;</span> <span class="identifier">const_reverse_iterator</span> <span class="special">&gt;</span> <a name="boost.icl.interval_base_set.element_const_reverse_i_id652970"></a><span class="identifier">element_const_reverse_iterator</span><span class="special">;</span> <span class="comment">// element const reverse iterator: Depreciated, see documentation. </span>
  70. <span class="comment">// <a class="link" href="interval_base_set.html#boost.icl.interval_base_setconstruct-copy-destruct">construct/copy/destruct</a></span>
  71. <a class="link" href="interval_base_set.html#id653545-bb"><span class="identifier">interval_base_set</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
  72. <a class="link" href="interval_base_set.html#id653550-bb"><span class="identifier">interval_base_set</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="interval_base_set.html" title="Class template interval_base_set">interval_base_set</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  73. interval_base_set&amp; <a class="link" href="interval_base_set.html#id653563-bb"><span class="keyword">operator</span><span class="special">=</span></a><span class="special">(</span><span class="keyword">const</span> <a class="link" href="interval_base_set.html" title="Class template interval_base_set">interval_base_set</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  74. <span class="comment">// <a class="link" href="interval_base_set.html#id652977-bb">public member functions</a></span>
  75. <span class="keyword">typedef</span> <a class="link" href="interval_base_set.html#id652980-bb"><span class="identifier">ICL_INTERVAL_TYPE</span></a><span class="special">(</span><span class="identifier">Interval</span><span class="special">,</span> <span class="identifier">DomainT</span><span class="special">,</span> <span class="identifier">Compare</span><span class="special">)</span><span class="special">;</span>
  76. <span class="keyword">typedef</span> <a class="link" href="interval_base_set.html#id653003-bb"><span class="identifier">ICL_COMPARE_DOMAIN</span></a><span class="special">(</span><span class="identifier">Compare</span><span class="special">,</span> <span class="identifier">DomainT</span><span class="special">)</span><span class="special">;</span>
  77. <span class="keyword">typedef</span> <a class="link" href="interval_base_set.html#id653021-bb"><span class="identifier">ICL_COMPARE_DOMAIN</span></a><span class="special">(</span><span class="identifier">Compare</span><span class="special">,</span> <span class="identifier">segment_type</span><span class="special">)</span><span class="special">;</span>
  78. <a class="link" href="interval_base_set.html#id653036-bb"><span class="identifier">BOOST_STATIC_CONSTANT</span></a><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">fineness</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span>
  79. <span class="keyword">void</span> <a class="link" href="interval_base_set.html#id653053-bb"><span class="identifier">swap</span></a><span class="special">(</span><a class="link" href="interval_base_set.html" title="Class template interval_base_set">interval_base_set</a> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  80. <span class="keyword">void</span> <a class="link" href="interval_base_set.html#id653070-bb"><span class="identifier">clear</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
  81. <span class="keyword">bool</span> <a class="link" href="interval_base_set.html#id653079-bb"><span class="identifier">empty</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  82. <span class="identifier">size_type</span> <a class="link" href="interval_base_set.html#id653089-bb"><span class="identifier">size</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  83. <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a class="link" href="interval_base_set.html#id653099-bb"><span class="identifier">iterative_size</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  84. <span class="identifier">const_iterator</span> <a class="link" href="interval_base_set.html#id653108-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">element_type</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  85. <span class="identifier">const_iterator</span> <a class="link" href="interval_base_set.html#id653126-bb"><span class="identifier">find</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">interval_type</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  86. <span class="identifier">SubType</span> <span class="special">&amp;</span> <a class="link" href="interval_base_set.html#id653144-bb"><span class="identifier">add</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">element_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  87. <span class="identifier">SubType</span> <span class="special">&amp;</span> <a class="link" href="interval_base_set.html#id653162-bb"><span class="identifier">add</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  88. <span class="identifier">iterator</span> <a class="link" href="interval_base_set.html#id653180-bb"><span class="identifier">add</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  89. <span class="identifier">SubType</span> <span class="special">&amp;</span> <a class="link" href="interval_base_set.html#id653210-bb"><span class="identifier">subtract</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">element_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  90. <span class="identifier">SubType</span> <span class="special">&amp;</span> <a class="link" href="interval_base_set.html#id653228-bb"><span class="identifier">subtract</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  91. <span class="identifier">SubType</span> <span class="special">&amp;</span> <a class="link" href="interval_base_set.html#id653246-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">element_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  92. <span class="identifier">SubType</span> <span class="special">&amp;</span> <a class="link" href="interval_base_set.html#id653264-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  93. <span class="identifier">iterator</span> <a class="link" href="interval_base_set.html#id653282-bb"><span class="identifier">insert</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  94. <span class="identifier">SubType</span> <span class="special">&amp;</span> <a class="link" href="interval_base_set.html#id653312-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">element_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  95. <span class="identifier">SubType</span> <span class="special">&amp;</span> <a class="link" href="interval_base_set.html#id653330-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  96. <span class="keyword">void</span> <a class="link" href="interval_base_set.html#id653348-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span><span class="special">;</span>
  97. <span class="keyword">void</span> <a class="link" href="interval_base_set.html#id653366-bb"><span class="identifier">erase</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">iterator</span><span class="special">)</span><span class="special">;</span>
  98. <span class="identifier">SubType</span> <span class="special">&amp;</span> <a class="link" href="interval_base_set.html#id653389-bb"><span class="identifier">flip</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">element_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  99. <span class="identifier">SubType</span> <span class="special">&amp;</span> <a class="link" href="interval_base_set.html#id653411-bb"><span class="identifier">flip</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  100. <span class="identifier">iterator</span> <a class="link" href="interval_base_set.html#id653432-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
  101. <span class="identifier">iterator</span> <a class="link" href="interval_base_set.html#id653438-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
  102. <span class="identifier">const_iterator</span> <a class="link" href="interval_base_set.html#id653444-bb"><span class="identifier">begin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  103. <span class="identifier">const_iterator</span> <a class="link" href="interval_base_set.html#id653450-bb"><span class="identifier">end</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  104. <span class="identifier">reverse_iterator</span> <a class="link" href="interval_base_set.html#id653456-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
  105. <span class="identifier">reverse_iterator</span> <a class="link" href="interval_base_set.html#id653462-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
  106. <span class="identifier">const_reverse_iterator</span> <a class="link" href="interval_base_set.html#id653468-bb"><span class="identifier">rbegin</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  107. <span class="identifier">const_reverse_iterator</span> <a class="link" href="interval_base_set.html#id653474-bb"><span class="identifier">rend</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  108. <span class="identifier">iterator</span> <a class="link" href="interval_base_set.html#id653480-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  109. <span class="identifier">iterator</span> <a class="link" href="interval_base_set.html#id653491-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  110. <span class="identifier">const_iterator</span> <a class="link" href="interval_base_set.html#id653502-bb"><span class="identifier">lower_bound</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  111. <span class="identifier">const_iterator</span> <a class="link" href="interval_base_set.html#id653513-bb"><span class="identifier">upper_bound</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">value_type</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  112. <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span> <span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="special">&gt;</span> <a class="link" href="interval_base_set.html#id653523-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  113. <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special">&lt;</span> <span class="identifier">const_iterator</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="special">&gt;</span>
  114. <a class="link" href="interval_base_set.html#id653534-bb"><span class="identifier">equal_range</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">key_type</span> <span class="special">&amp;</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  115. <span class="comment">// <a class="link" href="interval_base_set.html#id653576-bb">private member functions</a></span>
  116. <span class="identifier">iterator</span> <a class="link" href="interval_base_set.html#id653579-bb"><span class="identifier">_add</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  117. <span class="identifier">iterator</span> <a class="link" href="interval_base_set.html#id653589-bb"><span class="identifier">_add</span></a><span class="special">(</span><span class="identifier">iterator</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  118. <span class="comment">// <a class="link" href="interval_base_set.html#id653605-bb">protected member functions</a></span>
  119. <span class="keyword">void</span> <a class="link" href="interval_base_set.html#id653607-bb"><span class="identifier">add_front</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">interval_type</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  120. <span class="keyword">void</span> <a class="link" href="interval_base_set.html#id653623-bb"><span class="identifier">add_main</span></a><span class="special">(</span><span class="identifier">interval_type</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="special">&amp;</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">iterator</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  121. <span class="keyword">void</span> <a class="link" href="interval_base_set.html#id653643-bb"><span class="identifier">add_segment</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">interval_type</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  122. <span class="keyword">void</span> <a class="link" href="interval_base_set.html#id653659-bb"><span class="identifier">add_rear</span></a><span class="special">(</span><span class="keyword">const</span> <span class="identifier">interval_type</span> <span class="special">&amp;</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="special">&amp;</span><span class="special">)</span><span class="special">;</span>
  123. <span class="identifier">sub_type</span> <span class="special">*</span> <a class="link" href="interval_base_set.html#id653675-bb"><span class="identifier">that</span></a><span class="special">(</span><span class="special">)</span><span class="special">;</span>
  124. <span class="keyword">const</span> <span class="identifier">sub_type</span> <span class="special">*</span> <a class="link" href="interval_base_set.html#id653681-bb"><span class="identifier">that</span></a><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
  125. <span class="special">}</span><span class="special">;</span></pre></div>
  126. <div class="refsect1" lang="en">
  127. <a name="id1267700"></a><h2>Description</h2>
  128. <div class="refsect2" lang="en">
  129. <a name="id1267704"></a><h3>
  130. <a name="boost.icl.interval_base_setconstruct-copy-destruct"></a><code class="computeroutput">interval_base_set</code>
  131. public
  132. construct/copy/destruct</h3>
  133. <div class="orderedlist"><ol type="1">
  134. <li>
  135. <pre class="literallayout"><a name="id653545-bb"></a><span class="identifier">interval_base_set</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
  136. <p>Default constructor for the empty object </p>
  137. </li>
  138. <li>
  139. <pre class="literallayout"><a name="id653550-bb"></a><span class="identifier">interval_base_set</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="interval_base_set.html" title="Class template interval_base_set">interval_base_set</a> <span class="special">&amp;</span> src<span class="special">)</span><span class="special">;</span></pre>
  140. <p>Copy constructor </p>
  141. </li>
  142. <li>
  143. <pre class="literallayout">interval_base_set&amp; <a name="id653563-bb"></a><span class="keyword">operator</span><span class="special">=</span><span class="special">(</span><span class="keyword">const</span> <a class="link" href="interval_base_set.html" title="Class template interval_base_set">interval_base_set</a> <span class="special">&amp;</span> src<span class="special">)</span><span class="special">;</span></pre>
  144. <p>Assignment operator </p>
  145. </li>
  146. </ol></div>
  147. </div>
  148. <div class="refsect2" lang="en">
  149. <a name="id1267826"></a><h3>
  150. <a name="id652977-bb"></a><code class="computeroutput">interval_base_set</code> public member functions</h3>
  151. <div class="orderedlist"><ol type="1">
  152. <li>
  153. <pre class="literallayout"><span class="keyword">typedef</span> <a name="id652980-bb"></a><span class="identifier">ICL_INTERVAL_TYPE</span><span class="special">(</span><span class="identifier">Interval</span><span class="special">,</span> <span class="identifier">DomainT</span><span class="special">,</span> <span class="identifier">Compare</span><span class="special">)</span><span class="special">;</span></pre>The interval type of the set. </li>
  154. <li>
  155. <pre class="literallayout"><span class="keyword">typedef</span> <a name="id653003-bb"></a><span class="identifier">ICL_COMPARE_DOMAIN</span><span class="special">(</span><span class="identifier">Compare</span><span class="special">,</span> <span class="identifier">DomainT</span><span class="special">)</span><span class="special">;</span></pre>Comparison functor for domain values. </li>
  156. <li><pre class="literallayout"><span class="keyword">typedef</span> <a name="id653021-bb"></a><span class="identifier">ICL_COMPARE_DOMAIN</span><span class="special">(</span><span class="identifier">Compare</span><span class="special">,</span> <span class="identifier">segment_type</span><span class="special">)</span><span class="special">;</span></pre></li>
  157. <li><pre class="literallayout"> <a name="id653036-bb"></a><span class="identifier">BOOST_STATIC_CONSTANT</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">fineness</span> <span class="special">=</span> <span class="number">0</span><span class="special">)</span><span class="special">;</span></pre></li>
  158. <li>
  159. <pre class="literallayout"><span class="keyword">void</span> <a name="id653053-bb"></a><span class="identifier">swap</span><span class="special">(</span><a class="link" href="interval_base_set.html" title="Class template interval_base_set">interval_base_set</a> <span class="special">&amp;</span> operand<span class="special">)</span><span class="special">;</span></pre>
  160. <p>swap the content of containers </p>
  161. </li>
  162. <li>
  163. <pre class="literallayout"><span class="keyword">void</span> <a name="id653070-bb"></a><span class="identifier">clear</span><span class="special">(</span><span class="special">)</span><span class="special">;</span></pre>
  164. <p>sets the container empty </p>
  165. </li>
  166. <li>
  167. <pre class="literallayout"><span class="keyword">bool</span> <a name="id653079-bb"></a><span class="identifier">empty</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
  168. <p>is the container empty? </p>
  169. </li>
  170. <li>
  171. <pre class="literallayout"><span class="identifier">size_type</span> <a name="id653089-bb"></a><span class="identifier">size</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
  172. <p>An interval set's size is it's cardinality </p>
  173. </li>
  174. <li>
  175. <pre class="literallayout"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <a name="id653099-bb"></a><span class="identifier">iterative_size</span><span class="special">(</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
  176. <p>Size of the iteration over this container </p>
  177. </li>
  178. <li>
  179. <pre class="literallayout"><span class="identifier">const_iterator</span> <a name="id653108-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">element_type</span> <span class="special">&amp;</span> key_value<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
  180. <p>Find the interval, that contains element <code class="computeroutput">key_value</code> </p>
  181. </li>
  182. <li>
  183. <pre class="literallayout"><span class="identifier">const_iterator</span> <a name="id653126-bb"></a><span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">interval_type</span> <span class="special">&amp;</span> key_interval<span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre>
  184. <p>Find the first interval, that collides with interval <code class="computeroutput">key_interval</code> </p>
  185. </li>
  186. <li>
  187. <pre class="literallayout"><span class="identifier">SubType</span> <span class="special">&amp;</span> <a name="id653144-bb"></a><span class="identifier">add</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">element_type</span> <span class="special">&amp;</span> key<span class="special">)</span><span class="special">;</span></pre>
  188. <p>Add a single element <code class="computeroutput">key</code> to the set </p>
  189. </li>
  190. <li>
  191. <pre class="literallayout"><span class="identifier">SubType</span> <span class="special">&amp;</span> <a name="id653162-bb"></a><span class="identifier">add</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span> inter_val<span class="special">)</span><span class="special">;</span></pre>
  192. <p>Add an interval of elements <code class="computeroutput">inter_val</code> to the set </p>
  193. </li>
  194. <li>
  195. <pre class="literallayout"><span class="identifier">iterator</span> <a name="id653180-bb"></a><span class="identifier">add</span><span class="special">(</span><span class="identifier">iterator</span> prior_<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span> inter_val<span class="special">)</span><span class="special">;</span></pre>
  196. <p>Add an interval of elements <code class="computeroutput">inter_val</code> to the set. Iterator <code class="computeroutput">prior_</code> is a hint to the position <code class="computeroutput">inter_val</code> can be inserted after. </p>
  197. </li>
  198. <li>
  199. <pre class="literallayout"><span class="identifier">SubType</span> <span class="special">&amp;</span> <a name="id653210-bb"></a><span class="identifier">subtract</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">element_type</span> <span class="special">&amp;</span> key<span class="special">)</span><span class="special">;</span></pre>
  200. <p>Subtract a single element <code class="computeroutput">key</code> from the set </p>
  201. </li>
  202. <li>
  203. <pre class="literallayout"><span class="identifier">SubType</span> <span class="special">&amp;</span> <a name="id653228-bb"></a><span class="identifier">subtract</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span> inter_val<span class="special">)</span><span class="special">;</span></pre>
  204. <p>Subtract an interval of elements <code class="computeroutput">inter_val</code> from the set </p>
  205. </li>
  206. <li>
  207. <pre class="literallayout"><span class="identifier">SubType</span> <span class="special">&amp;</span> <a name="id653246-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">element_type</span> <span class="special">&amp;</span> key<span class="special">)</span><span class="special">;</span></pre>
  208. <p>Insert an element <code class="computeroutput">key</code> into the set </p>
  209. </li>
  210. <li>
  211. <pre class="literallayout"><span class="identifier">SubType</span> <span class="special">&amp;</span> <a name="id653264-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span> inter_val<span class="special">)</span><span class="special">;</span></pre>
  212. <p>Insert an interval of elements <code class="computeroutput">inter_val</code> to the set </p>
  213. </li>
  214. <li>
  215. <pre class="literallayout"><span class="identifier">iterator</span> <a name="id653282-bb"></a><span class="identifier">insert</span><span class="special">(</span><span class="identifier">iterator</span> prior_<span class="special">,</span> <span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span> inter_val<span class="special">)</span><span class="special">;</span></pre>
  216. <p>Insert an interval of elements <code class="computeroutput">inter_val</code> to the set. Iterator <code class="computeroutput">prior_</code> is a hint to the position <code class="computeroutput">inter_val</code> can be inserted after. </p>
  217. </li>
  218. <li>
  219. <pre class="literallayout"><span class="identifier">SubType</span> <span class="special">&amp;</span> <a name="id653312-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">element_type</span> <span class="special">&amp;</span> key<span class="special">)</span><span class="special">;</span></pre>
  220. <p>Erase an element <code class="computeroutput">key</code> from the set </p>
  221. </li>
  222. <li>
  223. <pre class="literallayout"><span class="identifier">SubType</span> <span class="special">&amp;</span> <a name="id653330-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">segment_type</span> <span class="special">&amp;</span> inter_val<span class="special">)</span><span class="special">;</span></pre>
  224. <p>Erase an interval of elements <code class="computeroutput">inter_val</code> from the set </p>
  225. </li>
  226. <li>
  227. <pre class="literallayout"><span class="keyword">void</span> <a name="id653348-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">iterator</span> position<span class="special">)</span><span class="special">;</span></pre>
  228. <p>Erase the interval that iterator <code class="computeroutput">position</code> points to. </p>
  229. </li>
  230. <li>
  231. <pre class="literallayout"><span class="keyword">void</span> <a name="id653366-bb"></a><span class="identifier">erase</span><span class="special">(</span><span class="identifier">iterator</span> first<span class="special">,</span> <span class="identifier">iterator</span> past<span class="special">)</span><span class="special">;</span></pre>
  232. <p>Erase all intervals in the range <code class="computeroutput">[first,past)</code> of iterators. </p>
  233. </li>
  234. <li>
  235. <pre class="literallayout"><span class="identifier">SubType</span> <span class="special">&amp;</span> <a name="id653389-bb"></a><span class="identifier">flip</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">element_type</span> <span class="special">&amp;</span> key<span class="special">)</span><span class="special">;</span></pre>
  236. <p>If <code class="computeroutput">*this</code> set contains <code class="computeroutput">key</code> it is erased, otherwise