Home | History | Annotate | Download | only in oscl_html
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
      3 <title>oscl_map.h Source File</title>
      4 <link href="doxygen.css" rel="stylesheet" type="text/css">
      5 </head><body>
      6 <!-- Generated by Doxygen 1.2.18 -->
      7 <center>
      8 <a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
      9 <hr><h1>oscl_map.h</h1><a href="oscl__map_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">// -*- c++ -*-</span>
     10 00002 <span class="comment">// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =</span>
     11 00003 
     12 00004 <span class="comment">//                     O S C L _ M A P</span>
     13 00005 
     14 00006 <span class="comment">// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =</span>
     15 00007 
     16 00018 <span class="preprocessor">#ifndef OSCL_MAP_H_INCLUDED</span>
     17 00019 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_MAP_H_INCLUDED</span>
     18 00020 <span class="preprocessor"></span>
     19 00021 <span class="preprocessor">#ifndef OSCL_BASE_H_INCLUDED</span>
     20 00022 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span>
     21 00023 <span class="preprocessor">#endif</span>
     22 00024 <span class="preprocessor"></span>
     23 00025 <span class="preprocessor">#ifndef OSCL_TREE_H_INCLUDED</span>
     24 00026 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__tree_8h.html">oscl_tree.h</a>"</span>
     25 00027 <span class="preprocessor">#endif</span>
     26 00028 <span class="preprocessor"></span>
     27 <a name="l00029"></a><a class="code" href="oscl__map_8h.html#a0">00029</a> <span class="preprocessor">#define OSCL_DISABLE_WARNING_TRUNCATE_DEBUG_MESSAGE</span>
     28 00030 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="osclconfig__compiler__warnings_8h.html">osclconfig_compiler_warnings.h</a>"</span>
     29 00031 
     30 00032 <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;
     31 <a name="l00033"></a><a class="code" href="structOscl__Less.html">00033</a> <span class="keyword">struct </span><a class="code" href="structOscl__Less.html">Oscl_Less</a>
     32 00034 {
     33 <a name="l00035"></a><a class="code" href="structOscl__Less.html#a0">00035</a>     <span class="keywordtype">bool</span> <a class="code" href="structOscl__Less.html#a0">operator()</a>(<span class="keyword">const</span> T&amp; x, <span class="keyword">const</span> T&amp; y)<span class="keyword"> const</span>
     34 00036 <span class="keyword">    </span>{
     35 00037         <span class="keywordflow">return</span> x &lt; y ? <span class="keyword">true</span> : <span class="keyword">false</span> ;
     36 00038     }
     37 00039 };
     38 00040 
     39 00041 <span class="keyword">template</span> &lt;<span class="keyword">class</span> V, <span class="keyword">class</span> U&gt;
     40 <a name="l00042"></a><a class="code" href="structOscl__Select1st.html">00042</a> <span class="keyword">struct </span><a class="code" href="structOscl__Select1st.html">Oscl_Select1st</a>
     41 00043 {
     42 <a name="l00044"></a><a class="code" href="structOscl__Select1st.html#a0">00044</a>     <span class="keyword">const</span> U&amp; <a class="code" href="structOscl__Select1st.html#a0">operator()</a>(<span class="keyword">const</span> V&amp; x)<span class="keyword"> const</span>
     43 00045 <span class="keyword">    </span>{
     44 00046         <span class="keywordflow">return</span> x.first;
     45 00047     }
     46 00048 };
     47 00049 
     48 00060 <span class="keyword">template</span> &lt; <span class="keyword">class</span> Key, <span class="keyword">class</span> T, <span class="keyword">class</span> Alloc, <span class="keyword">class</span> Compare = Oscl_Less&lt;Key&gt; &gt;
     49 <a name="l00061"></a><a class="code" href="classOscl__Map.html">00061</a> <span class="keyword">class </span><a class="code" href="classOscl__Map.html">Oscl_Map</a>
     50 00062 {
     51 00063 
     52 00064     <span class="keyword">public</span>:
     53 <a name="l00065"></a><a class="code" href="classOscl__Map.html#s0">00065</a>         <span class="keyword">typedef</span> Key <a class="code" href="classOscl__Map.html#s0">key_type</a>;
     54 <a name="l00066"></a><a class="code" href="classOscl__Map.html#s1">00066</a>         <span class="keyword">typedef</span> Compare <a class="code" href="structOscl__Tag__Base.html">key_compare</a>;
     55 <a name="l00067"></a><a class="code" href="classOscl__Map.html#s2">00067</a>         <span class="keyword">typedef</span> <a class="code" href="structOscl__Pair.html">Oscl_Pair&lt;const Key, T&gt;</a> <a class="code" href="structOscl__Pair.html">value_type</a>;
     56 <a name="l00068"></a><a class="code" href="classOscl__Map.html#s3">00068</a>         <span class="keyword">typedef</span> <a class="code" href="classOscl__Map.html">Oscl_Map&lt;Key, T, Alloc, Compare&gt;</a> <a class="code" href="classOscl__Map.html">self</a>;
     57 00069 
     58 00070     <span class="keyword">private</span>:
     59 00071         <span class="keyword">typedef</span> <a class="code" href="classOscl__Rb__Tree.html">Oscl_Rb_Tree</a> &lt; <a class="code" href="classOscl__Map.html#s0">key_type</a>, value_type,
     60 00072         <a class="code" href="structOscl__Select1st.html">Oscl_Select1st&lt;value_type, key_type&gt;</a>,
     61 00073         <a class="code" href="structOscl__Tag__Base.html">key_compare</a>, Alloc &gt; <a class="code" href="classOscl__Rb__Tree.html">rep_type</a>;
     62 00074         <a class="code" href="classOscl__Rb__Tree.html">rep_type</a> t;  <span class="comment">// red-black tree representing map</span>
     63 00075 
     64 00076     <span class="keyword">public</span>:
     65 <a name="l00077"></a><a class="code" href="classOscl__Map.html#s4">00077</a>         <span class="keyword">typedef</span> <span class="keyword">typename</span> rep_type::pointer <a class="code" href="classOscl__Map.html#s4">pointer</a>;
     66 <a name="l00078"></a><a class="code" href="classOscl__Map.html#s5">00078</a>         <span class="keyword">typedef</span> <span class="keyword">typename</span> rep_type::reference <a class="code" href="classOscl__Map.html#s5">reference</a>;
     67 <a name="l00079"></a><a class="code" href="classOscl__Map.html#s6">00079</a>         <span class="keyword">typedef</span> <span class="keyword">typename</span> rep_type::const_reference <a class="code" href="classOscl__Map.html#s6">const_reference</a>;
     68 <a name="l00080"></a><a class="code" href="classOscl__Map.html#s7">00080</a>         <span class="keyword">typedef</span> <span class="keyword">typename</span> rep_type::iterator <a class="code" href="classOscl__Map.html#s7">iterator</a>;
     69 <a name="l00081"></a><a class="code" href="classOscl__Map.html#s8">00081</a>         <span class="keyword">typedef</span> <span class="keyword">typename</span> rep_type::const_iterator <a class="code" href="classOscl__Map.html#s8">const_iterator</a>;
     70 <a name="l00082"></a><a class="code" href="classOscl__Map.html#s9">00082</a>         <span class="keyword">typedef</span> <span class="keyword">typename</span> rep_type::size_type <a class="code" href="classOscl__Map.html#s9">size_type</a>;
     71 00083 
     72 <a name="l00084"></a><a class="code" href="classOscl__Map_1_1value__compare.html">00084</a>         <span class="keyword">class </span><a class="code" href="classOscl__Map_1_1value__compare.html">value_compare</a>
     73 00085         {
     74 <a name="l00086"></a><a class="code" href="classOscl__Map_1_1value__compare.html#l0">00086</a>                 <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOscl__Map.html">Oscl_Map</a>&lt;Key, T, Alloc, Compare&gt;;
     75 00087             <span class="keyword">protected</span> :
     76 <a name="l00088"></a><a class="code" href="classOscl__Map_1_1value__compare.html#n0">00088</a>                 Compare <a class="code" href="classOscl__Map_1_1value__compare.html#n0">comp</a>;
     77 <a name="l00089"></a><a class="code" href="classOscl__Map_1_1value__compare.html#b0">00089</a>                 <a class="code" href="classOscl__Map_1_1value__compare.html#b0">value_compare</a>(Compare c) : <a class="code" href="classOscl__Map_1_1value__compare.html#n0">comp</a>(c) {}
     78 00090             <span class="keyword">public</span>:
     79 <a name="l00091"></a><a class="code" href="classOscl__Map_1_1value__compare.html#a0">00091</a>                 <span class="keywordtype">bool</span> <a class="code" href="classOscl__Map_1_1value__compare.html#a0">operator()</a>(<span class="keyword">const</span> value_type&amp; x, <span class="keyword">const</span> value_type&amp; y)<span class="keyword"> const</span>
     80 00092 <span class="keyword">                </span>{
     81 00093                     <span class="keywordflow">return</span> <a class="code" href="classOscl__Map_1_1value__compare.html#n0">comp</a>(x.<a class="code" href="structOscl__Pair.html#m0">first</a>, y.<a class="code" href="structOscl__Pair.html#m0">first</a>);
     82 00094                 }
     83 00095         };
     84 00096 
     85 00097     <span class="keyword">public</span>:
     86 00098 
     87 <a name="l00102"></a><a class="code" href="classOscl__Map.html#a0">00102</a>         <a class="code" href="classOscl__Map.html#a0">Oscl_Map</a>(<span class="keyword">const</span> Compare&amp; comp = Compare()) : t(comp) {}
     88 00103 <span class="comment">//    Oscl_Map(const value_type* first, const value_type* last,</span>
     89 00104 <span class="comment">//        const Compare&amp; comp = Compare()) : t(first, last, comp, false) {}</span>
     90 00105 
     91 <a name="l00109"></a><a class="code" href="classOscl__Map.html#a1">00109</a>         <a class="code" href="classOscl__Map.html#a0">Oscl_Map</a>(<span class="keyword">const</span> self&amp; x) : t(x.t) {}
     92 <a name="l00113"></a><a class="code" href="classOscl__Map.html#a2">00113</a>         self&amp; <a class="code" href="classOscl__Map.html#a2">operator=</a>(<span class="keyword">const</span> self&amp; x)
     93 00114         {
     94 00115             t = x.<a class="code" href="classOscl__Map.html#o0">t</a>;
     95 00116             <span class="keywordflow">return</span> *<span class="keyword">this</span>;
     96 00117         }
     97 <a name="l00121"></a><a class="code" href="classOscl__Map.html#a3">00121</a>         key_compare <a class="code" href="classOscl__Map.html#a3">key_comp</a>()<span class="keyword"> const</span>
     98 00122 <span class="keyword">        </span>{
     99 00123             <span class="keywordflow">return</span> t.key_comp();
    100 00124         }
    101 <a name="l00128"></a><a class="code" href="classOscl__Map.html#a4">00128</a>         value_compare <a class="code" href="classOscl__Map.html#a4">value_comp</a>()<span class="keyword"> const</span>
    102 00129 <span class="keyword">        </span>{
    103 00130             <span class="keywordflow">return</span> value_compare(t.key_comp());
    104 00131         }
    105 <a name="l00135"></a><a class="code" href="classOscl__Map.html#a5">00135</a>         <a class="code" href="classOscl__Map.html#s7">iterator</a> <a class="code" href="classOscl__Map.html#a5">begin</a>()
    106 00136         {
    107 00137             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a4">begin</a>();
    108 00138         }
    109 <a name="l00142"></a><a class="code" href="classOscl__Map.html#a6">00142</a>         <a class="code" href="classOscl__Map.html#s8">const_iterator</a> <a class="code" href="classOscl__Map.html#a5">begin</a>()<span class="keyword"> const</span>
    110 00143 <span class="keyword">        </span>{
    111 00144             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a4">begin</a>();
    112 00145         }
    113 <a name="l00149"></a><a class="code" href="classOscl__Map.html#a7">00149</a>         <a class="code" href="classOscl__Map.html#s7">iterator</a> <a class="code" href="classOscl__Map.html#a7">end</a>()
    114 00150         {
    115 00151             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a6">end</a>();
    116 00152         }
    117 <a name="l00156"></a><a class="code" href="classOscl__Map.html#a8">00156</a>         <a class="code" href="classOscl__Map.html#s8">const_iterator</a> <a class="code" href="classOscl__Map.html#a7">end</a>()<span class="keyword"> const</span>
    118 00157 <span class="keyword">        </span>{
    119 00158             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a6">end</a>();
    120 00159         }
    121 <a name="l00163"></a><a class="code" href="classOscl__Map.html#a9">00163</a>         <span class="keywordtype">bool</span> <a class="code" href="classOscl__Map.html#a9">empty</a>()<span class="keyword"> const</span>
    122 00164 <span class="keyword">        </span>{
    123 00165             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a8">empty</a>();
    124 00166         }
    125 <a name="l00170"></a><a class="code" href="classOscl__Map.html#a10">00170</a>         <a class="code" href="classOscl__Map.html#s9">size_type</a> <a class="code" href="classOscl__Map.html#a10">size</a>()<span class="keyword"> const</span>
    126 00171 <span class="keyword">        </span>{
    127 00172             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a9">size</a>();
    128 00173         }
    129 <a name="l00177"></a><a class="code" href="classOscl__Map.html#a11">00177</a>         <a class="code" href="classOscl__Map.html#s9">size_type</a> <a class="code" href="classOscl__Map.html#a11">max_size</a>()<span class="keyword"> const</span>
    130 00178 <span class="keyword">        </span>{
    131 00179             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a10">max_size</a>();
    132 00180         }
    133 <a name="l00185"></a><a class="code" href="classOscl__Map.html#a12">00185</a>         T&amp; <a class="code" href="classOscl__Map.html#a12">operator[]</a>(<span class="keyword">const</span> key_type&amp; k)
    134 00186         {
    135 00187             <span class="keywordflow">return</span> (*((<a class="code" href="classOscl__Map.html#a13">insert</a>(<a class="code" href="classOscl__Map.html#s2">value_type</a>(k, T()))).first)).second;
    136 00188         }
    137 00189 <span class="comment">//    void swap(map&lt;Key, T, Compare&gt;&amp; x) { t.swap(x.t); }</span>
    138 00190 
    139 00191 
    140 <a name="l00192"></a><a class="code" href="classOscl__Map.html#s10">00192</a>         <span class="keyword">typedef</span> <a class="code" href="structOscl__Pair.html">Oscl_Pair&lt;iterator, bool&gt;</a> <a class="code" href="structOscl__Pair.html">pair_iterator_bool</a>;
    141 <a name="l00196"></a><a class="code" href="classOscl__Map.html#a13">00196</a>         pair_iterator_bool <a class="code" href="classOscl__Map.html#a13">insert</a>(<span class="keyword">const</span> value_type&amp; x)
    142 00197         {
    143 00198             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a11">insert_unique</a>(x);
    144 00199         }
    145 <a name="l00203"></a><a class="code" href="classOscl__Map.html#a14">00203</a>         <a class="code" href="classOscl__Map.html#s7">iterator</a> <a class="code" href="classOscl__Map.html#a13">insert</a>(<a class="code" href="classOscl__Map.html#s7">iterator</a> position, <span class="keyword">const</span> value_type&amp; x)
    146 00204         {
    147 00205             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a11">insert_unique</a>(position, x);
    148 00206         }
    149 <a name="l00210"></a><a class="code" href="classOscl__Map.html#a15">00210</a>         <span class="keywordtype">void</span> <a class="code" href="classOscl__Map.html#a13">insert</a>(<span class="keyword">const</span> value_type* first, <span class="keyword">const</span> value_type* last)
    150 00211         {
    151 00212             t.<a class="code" href="classOscl__Rb__Tree.html#a11">insert_unique</a>(first, last);
    152 00213         }
    153 <a name="l00217"></a><a class="code" href="classOscl__Map.html#a16">00217</a>         <span class="keywordtype">void</span> <a class="code" href="classOscl__Map.html#a16">erase</a>(<a class="code" href="classOscl__Map.html#s7">iterator</a> position)
    154 00218         {
    155 00219             t.<a class="code" href="classOscl__Rb__Tree.html#a15">erase</a>(position);
    156 00220         }
    157 <a name="l00224"></a><a class="code" href="classOscl__Map.html#a17">00224</a>         <a class="code" href="classOscl__Map.html#s9">size_type</a> <a class="code" href="classOscl__Map.html#a16">erase</a>(<span class="keyword">const</span> key_type&amp; x)
    158 00225         {
    159 00226             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a15">erase</a>(x);
    160 00227         }
    161 <a name="l00231"></a><a class="code" href="classOscl__Map.html#a18">00231</a>         <span class="keywordtype">void</span> <a class="code" href="classOscl__Map.html#a16">erase</a>(<a class="code" href="classOscl__Map.html#s7">iterator</a> first, <a class="code" href="classOscl__Map.html#s7">iterator</a> last)
    162 00232         {
    163 00233             t.<a class="code" href="classOscl__Rb__Tree.html#a15">erase</a>(first, last);
    164 00234         }
    165 <a name="l00238"></a><a class="code" href="classOscl__Map.html#a19">00238</a>         <span class="keywordtype">void</span> <a class="code" href="classOscl__Map.html#a19">clear</a>()
    166 00239         {
    167 00240             t.<a class="code" href="classOscl__Rb__Tree.html#a19">clear</a>();
    168 00241         }
    169 <a name="l00245"></a><a class="code" href="classOscl__Map.html#a20">00245</a>         <a class="code" href="classOscl__Map.html#s7">iterator</a> <a class="code" href="classOscl__Map.html#a20">find</a>(<span class="keyword">const</span> key_type&amp; x)
    170 00246         {
    171 00247             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a20">find</a>(x);
    172 00248         }
    173 <a name="l00252"></a><a class="code" href="classOscl__Map.html#a21">00252</a>         <a class="code" href="classOscl__Map.html#s8">const_iterator</a> <a class="code" href="classOscl__Map.html#a20">find</a>(<span class="keyword">const</span> key_type&amp; x)<span class="keyword"> const</span>
    174 00253 <span class="keyword">        </span>{
    175 00254             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a20">find</a>(x);
    176 00255         }
    177 <a name="l00259"></a><a class="code" href="classOscl__Map.html#a22">00259</a>         <a class="code" href="classOscl__Map.html#s9">size_type</a> <a class="code" href="classOscl__Map.html#a22">count</a>(<span class="keyword">const</span> key_type&amp; x)<span class="keyword"> const</span>
    178 00260 <span class="keyword">        </span>{
    179 00261             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a22">count</a>(x);
    180 00262         }
    181 <a name="l00266"></a><a class="code" href="classOscl__Map.html#a23">00266</a>         <a class="code" href="classOscl__Map.html#s7">iterator</a> <a class="code" href="classOscl__Map.html#a23">lower_bound</a>(<span class="keyword">const</span> key_type&amp; x)
    182 00267         {
    183 00268             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a23">lower_bound</a>(x);
    184 00269         }
    185 <a name="l00273"></a><a class="code" href="classOscl__Map.html#a24">00273</a>         <a class="code" href="classOscl__Map.html#s8">const_iterator</a> <a class="code" href="classOscl__Map.html#a23">lower_bound</a>(<span class="keyword">const</span> key_type&amp; x)<span class="keyword"> const</span>
    186 00274 <span class="keyword">        </span>{
    187 00275             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a23">lower_bound</a>(x);
    188 00276         }
    189 <a name="l00280"></a><a class="code" href="classOscl__Map.html#a25">00280</a>         <a class="code" href="classOscl__Map.html#s7">iterator</a> <a class="code" href="classOscl__Map.html#a25">upper_bound</a>(<span class="keyword">const</span> key_type&amp; x)
    190 00281         {
    191 00282             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a25">upper_bound</a>(x);
    192 00283         }
    193 <a name="l00287"></a><a class="code" href="classOscl__Map.html#a26">00287</a>         <a class="code" href="classOscl__Map.html#s8">const_iterator</a> <a class="code" href="classOscl__Map.html#a25">upper_bound</a>(<span class="keyword">const</span> key_type&amp; x)<span class="keyword"> const</span>
    194 00288 <span class="keyword">        </span>{
    195 00289             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a25">upper_bound</a>(x);
    196 00290         }
    197 <a name="l00291"></a><a class="code" href="classOscl__Map.html#s11">00291</a>         <span class="keyword">typedef</span> <a class="code" href="structOscl__Pair.html">Oscl_Pair&lt;iterator, iterator&gt;</a> <a class="code" href="structOscl__Pair.html">pair_iterator_iterator</a>;
    198 <a name="l00295"></a><a class="code" href="classOscl__Map.html#a27">00295</a>         pair_iterator_iterator <a class="code" href="classOscl__Map.html#a27">equal_range</a>(<span class="keyword">const</span> key_type&amp; x)
    199 00296         {
    200 00297             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a27">equal_range</a>(x);
    201 00298         }
    202 <a name="l00299"></a><a class="code" href="classOscl__Map.html#s12">00299</a>         <span class="keyword">typedef</span> <a class="code" href="structOscl__Pair.html">Oscl_Pair&lt;const_iterator, const_iterator&gt;</a> <a class="code" href="structOscl__Pair.html">pair_citerator_citerator</a>;
    203 <a name="l00303"></a><a class="code" href="classOscl__Map.html#a28">00303</a>         pair_citerator_citerator <a class="code" href="classOscl__Map.html#a27">equal_range</a>(<span class="keyword">const</span> key_type&amp; x)<span class="keyword"> const</span>
    204 00304 <span class="keyword">        </span>{
    205 00305             <span class="keywordflow">return</span> t.<a class="code" href="classOscl__Rb__Tree.html#a27">equal_range</a>(x);
    206 00306         }
    207 00307 
    208 00308     <span class="keyword">private</span>:
    209 00309 
    210 00310 };
    211 00311 
    212 00312 <span class="comment">//template &lt;class Key, class T, class Compare&gt;</span>
    213 00313 <span class="comment">//inline bool operator==(const map&lt;Key, T, Compare&gt;&amp; x,</span>
    214 00314 <span class="comment">//                       const map&lt;Key, T, Compare&gt;&amp; y) {</span>
    215 00315 <span class="comment">//    return x.size() == y.size() &amp;&amp; equal(x.begin(), x.end(), y.begin());</span>
    216 00316 <span class="comment">//}</span>
    217 00317 
    218 00318 <span class="comment">//template &lt;class Key, class T, class Compare&gt;</span>
    219 00319 <span class="comment">//inline bool operator&lt;(const map&lt;Key, T, Compare&gt;&amp; x,</span>
    220 00320 <span class="comment">//                      const map&lt;Key, T, Compare&gt;&amp; y) {</span>
    221 00321 <span class="comment">//    return lexicographical_compare(x.begin(), x.end(), y.begin(), y.end());</span>
    222 00322 <span class="comment">//}</span>
    223 00323 
    224 00324 
    225 00328 <span class="preprocessor">#endif</span>
    226 </pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
    227 <address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
    228 </small></address>
    229 </body>
    230 </html>
    231