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_vector.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> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> </center> 9<hr><h1>oscl_vector.h</h1><a href="oscl__vector_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">// -*- c++ -*-</span> 1000002 <span class="comment">// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =</span> 1100003 1200004 <span class="comment">// O S C L _ V E C T O R</span> 1300005 1400006 <span class="comment">// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =</span> 1500007 1600017 <span class="preprocessor">#ifndef OSCL_VECTOR_H_INCLUDED</span> 1700018 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_VECTOR_H_INCLUDED</span> 1800019 <span class="preprocessor"></span> 1900020 <span class="preprocessor">#ifndef OSCL_BASE_H_INCLUDED</span> 2000021 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span> 2100022 <span class="preprocessor">#endif</span> 2200023 <span class="preprocessor"></span> 2300024 <span class="preprocessor">#ifndef OSCL_MEM_BASIC_FUNCTIONS_H_INCLUDED</span> 2400025 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__mem__basic__functions_8h.html">oscl_mem_basic_functions.h</a>"</span> 2500026 <span class="preprocessor">#endif</span> 2600027 <span class="preprocessor"></span> 2700028 <span class="preprocessor">#ifndef OSCL_ASSERT_H_INCLUDED</span> 2800029 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__assert_8h.html">oscl_assert.h</a>"</span> 2900030 <span class="preprocessor">#endif</span> 3000031 <span class="preprocessor"></span> 3100032 <span class="preprocessor">#ifndef OSCL_OPAQUE_TYPE_H_INCLUDED</span> 3200033 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__opaque__type_8h.html">oscl_opaque_type.h</a>"</span> 3300034 <span class="preprocessor">#endif</span> 3400035 <span class="preprocessor"></span> 3500036 <span class="preprocessor">#ifndef OSCL_DEF_ALLOC_H_INCLUDED</span> 3600037 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__defalloc_8h.html">oscl_defalloc.h</a>"</span> 3700038 <span class="preprocessor">#endif</span> 3800039 <span class="preprocessor"></span> 39<a name="l00047"></a><a class="code" href="classOscl__Vector__Base.html">00047</a> <span class="keyword">class </span><a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a> 4000048 { 4100049 <span class="keyword">public</span>: 42<a name="l00053"></a><a class="code" href="classOscl__Vector__Base.html#a0">00053</a> uint32 <a class="code" href="classOscl__Vector__Base.html#a0">size</a>()<span class="keyword"> const</span> 4300054 <span class="keyword"> </span>{ 4400055 <span class="keywordflow">return</span> <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>; 4500056 } 4600057 47<a name="l00061"></a><a class="code" href="classOscl__Vector__Base.html#a1">00061</a> uint32 <a class="code" href="classOscl__Vector__Base.html#a1">capacity</a>()<span class="keyword"> const</span> 4800062 <span class="keyword"> </span>{ 4900063 <span class="keywordflow">return</span> <a class="code" href="classOscl__Vector__Base.html#n1">bufsize</a>; 5000064 } 5100065 52<a name="l00069"></a><a class="code" href="classOscl__Vector__Base.html#a2">00069</a> <span class="keywordtype">bool</span> <a class="code" href="classOscl__Vector__Base.html#a2">empty</a>()<span class="keyword"> const</span> 5300070 <span class="keyword"> </span>{ 5400071 <span class="keywordflow">return</span> <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a> == 0; 5500072 } 5600073 5700082 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#a3">reserve</a>(uint32 n) ; 5800083 5900084 <span class="keyword">protected</span>: 6000085 6100086 <span class="comment">//for use in default constructor. vtable isn't available in c'tor so this is a subroutine.</span> 6200087 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b0">construct</a>(<a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>* aType); 6300088 6400089 <span class="comment">//for use in constructor with pre-allocation for "n" elements.</span> 6500090 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b0">construct</a>(<a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>* aType, uint32 n) ; 6600091 6700092 <span class="comment">//for use in copy constructor.</span> 6800093 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b0">construct</a>(<a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>* aType, <span class="keyword">const</span> <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>& x); 6900094 70<a name="l00098"></a><a class="code" href="classOscl__Vector__Base.html#b3">00098</a> <span class="keyword">virtual</span> <a class="code" href="classOscl__Vector__Base.html#b3">~Oscl_Vector_Base</a>() 7100099 {} 7200100 7300107 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b4">push_back</a>(<span class="keyword">const</span> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* x) ; 7400108 7500112 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b5">pop_back</a>() ; 7600113 7700120 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b6">push_front</a>(<span class="keyword">const</span> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* x) ; 7800121 7900127 OSCL_IMPORT_REF <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOscl__Vector__Base.html#b7">insert</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* pos, <span class="keyword">const</span> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* x); 8000128 8100135 OSCL_IMPORT_REF <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOscl__Vector__Base.html#b8">erase</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* pos) ; 8200136 8300144 OSCL_IMPORT_REF <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOscl__Vector__Base.html#b8">erase</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* first, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* last) ; 8400145 8500146 <span class="comment">//copy vector x into this vector</span> 8600147 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b10">assign_vector</a>(<span class="keyword">const</span> <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>& x); 8700148 8800149 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b11">destroy</a>(); 8900150 90<a name="l00151"></a><a class="code" href="classOscl__Vector__Base.html#n0">00151</a> uint32 <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>; <span class="comment">//number of T items in buffer.</span> 91<a name="l00152"></a><a class="code" href="classOscl__Vector__Base.html#n1">00152</a> uint32 <a class="code" href="classOscl__Vector__Base.html#n1">bufsize</a>; <span class="comment">//available bufsize as number of T-sized items.</span> 92<a name="l00153"></a><a class="code" href="classOscl__Vector__Base.html#n2">00153</a> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOscl__Vector__Base.html#n2">elems</a>; <span class="comment">//buffer</span> 93<a name="l00154"></a><a class="code" href="classOscl__Vector__Base.html#n3">00154</a> uint32 <a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a>; 9400155 95<a name="l00156"></a><a class="code" href="classOscl__Vector__Base.html#l0">00156</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclPriorityQueueBase.html">OsclPriorityQueueBase</a>; 9600157 9700158 <span class="keyword">private</span>: 9800159 9900163 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* increment_T(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* p_T, int32 n)<span class="keyword"> const</span> 10000164 <span class="keyword"> </span>{ 10100165 <span class="keywordflow">return</span> (<a class="code" href="group__osclbase.html#a25">OsclAny</a>*)((int32)p_T + n*<a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a>); 10200166 } 10300167 10400171 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* begin()<span class="keyword"> const</span> 10500172 <span class="keyword"> </span>{ 10600173 <span class="keywordflow">return</span> <a class="code" href="classOscl__Vector__Base.html#n2">elems</a>; 10700174 } 10800175 10900179 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* end()<span class="keyword"> const</span> 11000180 <span class="keyword"> </span>{ 11100181 <span class="keywordflow">return</span> increment_T(<a class="code" href="classOscl__Vector__Base.html#n2">elems</a>, <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>); 11200182 } 11300183 11400184 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* move(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* first, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* last, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* result) ; 11500185 11600186 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* copy(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* first, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* last, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* result) ; 11700187 11800188 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* uninitialized_copy(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* first, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* last, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* result) ; 11900189 12000190 <span class="comment">//destroy a range of T*</span> 12100191 <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector__Base.html#b11">destroy</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* first, <a class="code" href="group__osclbase.html#a25">OsclAny</a>* last) ; 12200192 12300193 <a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>* pOpaqueType; 12400194 }; 12500195 12600204 <span class="keyword">template</span><<span class="keyword">class</span> T, <span class="keyword">class</span> Alloc> 127<a name="l00205"></a><a class="code" href="classOscl__Vector.html">00205</a> <span class="keyword">class </span><a class="code" href="classOscl__Vector.html">Oscl_Vector</a> 12800206 : <span class="keyword">public</span> <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a> 12900207 , <span class="keyword">public</span> <a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a> 13000208 { 13100209 13200210 <span class="keyword">public</span>: 133<a name="l00211"></a><a class="code" href="classOscl__Vector.html#s0">00211</a> <span class="keyword">typedef</span> T <a class="code" href="classOscl__Vector.html#s0">value_type</a>; 134<a name="l00212"></a><a class="code" href="classOscl__Vector.html#s1">00212</a> <span class="keyword">typedef</span> T* <a class="code" href="classOscl__Vector.html#s1">pointer</a>; 135<a name="l00213"></a><a class="code" href="classOscl__Vector.html#s2">00213</a> <span class="keyword">typedef</span> T& <a class="code" href="classOscl__Vector.html#s2">reference</a>; 136<a name="l00214"></a><a class="code" href="classOscl__Vector.html#s3">00214</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T& <a class="code" href="classOscl__Vector.html#s3">const_reference</a>; 137<a name="l00215"></a><a class="code" href="classOscl__Vector.html#s4">00215</a> <span class="keyword">typedef</span> T* <a class="code" href="classOscl__Vector.html#s4">iterator</a>; 138<a name="l00216"></a><a class="code" href="classOscl__Vector.html#s5">00216</a> <span class="keyword">typedef</span> <span class="keyword">const</span> T* <a class="code" href="classOscl__Vector.html#s5">const_iterator</a>; 13900217 140<a name="l00221"></a><a class="code" href="classOscl__Vector.html#a0">00221</a> <a class="code" href="classOscl__Vector.html#a0">Oscl_Vector</a>() : <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>(), <a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>() 14100222 { 14200223 <a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a> = <span class="keyword">sizeof</span>(T); 14300224 <a class="code" href="classOscl__Vector__Base.html#b0">Oscl_Vector_Base::construct</a>(<span class="keyword">this</span>); 14400225 } 14500226 146<a name="l00235"></a><a class="code" href="classOscl__Vector.html#a1">00235</a> <a class="code" href="classOscl__Vector.html#a0">Oscl_Vector</a>(uint32 n) : <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>(), <a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>() 14700236 { 14800237 <a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a> = <span class="keyword">sizeof</span>(T); 14900238 <a class="code" href="classOscl__Vector__Base.html#b0">Oscl_Vector_Base::construct</a>(<span class="keyword">this</span>, n); 15000239 } 15100240 152<a name="l00245"></a><a class="code" href="classOscl__Vector.html#a2">00245</a> <a class="code" href="classOscl__Vector.html#a0">Oscl_Vector</a>(<span class="keyword">const</span> <a class="code" href="classOscl__Vector.html">Oscl_Vector<T, Alloc></a>& x) : <a class="code" href="classOscl__Vector__Base.html">Oscl_Vector_Base</a>(), <a class="code" href="classOscl__Opaque__Type__Alloc.html">Oscl_Opaque_Type_Alloc</a>() 15300246 { 15400247 <a class="code" href="classOscl__Vector__Base.html#n3">sizeof_T</a> = <span class="keyword">sizeof</span>(T); 15500248 <a class="code" href="classOscl__Vector__Base.html#b0">Oscl_Vector_Base::construct</a>(<span class="keyword">this</span>, x); 15600249 } 15700250 158<a name="l00254"></a><a class="code" href="classOscl__Vector.html#a3">00254</a> <span class="keyword">virtual</span> <a class="code" href="classOscl__Vector.html#a3">~Oscl_Vector</a>() 15900255 { 16000256 <a class="code" href="classOscl__Vector__Base.html#b11">Oscl_Vector_Base::destroy</a>(); 16100257 } 16200258 163<a name="l00262"></a><a class="code" href="classOscl__Vector.html#a4">00262</a> <a class="code" href="classOscl__Vector.html">Oscl_Vector<T, Alloc></a>& <a class="code" href="classOscl__Vector.html#a4">operator=</a>(<span class="keyword">const</span> <a class="code" href="classOscl__Vector.html">Oscl_Vector<T, Alloc></a>& x) 16400263 { 16500264 <span class="keywordflow">if</span> (&x != <span class="keyword">this</span>) 16600265 <a class="code" href="classOscl__Vector__Base.html#b10">Oscl_Vector_Base::assign_vector</a>(x); 16700266 <span class="keywordflow">return</span> *<span class="keyword">this</span>; 16800267 } 16900268 170<a name="l00275"></a><a class="code" href="classOscl__Vector.html#a5">00275</a> <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector.html#a5">push_back</a>(<span class="keyword">const</span> T& x) 17100276 { 17200277 <a class="code" href="classOscl__Vector__Base.html#b4">Oscl_Vector_Base::push_back</a>(&x); 17300278 } 17400279 175<a name="l00286"></a><a class="code" href="classOscl__Vector.html#a6">00286</a> <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector.html#a6">push_front</a>(<span class="keyword">const</span> T& x) 17600287 { 17700288 <a class="code" href="classOscl__Vector__Base.html#b6">Oscl_Vector_Base::push_front</a>(&x); 17800289 } 17900290 180<a name="l00296"></a><a class="code" href="classOscl__Vector.html#a7">00296</a> <a class="code" href="classOscl__Vector.html#s4">iterator</a> <a class="code" href="classOscl__Vector.html#a7">insert</a>(<a class="code" href="classOscl__Vector.html#s4">iterator</a> pos, <span class="keyword">const</span> T& x) 18100297 { 18200298 <span class="keywordflow">return</span> (iterator)<a class="code" href="classOscl__Vector__Base.html#b7">Oscl_Vector_Base::insert</a>(pos, &x); 18300299 } 18400300 185<a name="l00305"></a><a class="code" href="classOscl__Vector.html#a8">00305</a> T& <a class="code" href="classOscl__Vector.html#a8">operator[]</a>(uint32 n) 18600306 { 18700307 <span class="keywordflow">return</span> (*(<a class="code" href="classOscl__Vector.html#a17">begin</a>() + n)); 18800308 } 18900309 190<a name="l00314"></a><a class="code" href="classOscl__Vector.html#a9">00314</a> <span class="keyword">const</span> T& <a class="code" href="classOscl__Vector.html#a8">operator[]</a>(uint32 n)<span class="keyword"> const</span> 19100315 <span class="keyword"> </span>{ 19200316 <span class="keywordflow">return</span> (*(<a class="code" href="classOscl__Vector.html#a17">begin</a>() + n)); 19300317 } 19400318 195<a name="l00322"></a><a class="code" href="classOscl__Vector.html#a10">00322</a> T& <a class="code" href="classOscl__Vector.html#a10">front</a>() 19600323 { 19700324 <span class="keywordflow">return</span> *<a class="code" href="classOscl__Vector.html#a17">begin</a>(); 19800325 } 19900326 200<a name="l00330"></a><a class="code" href="classOscl__Vector.html#a11">00330</a> <span class="keyword">const</span> T& <a class="code" href="classOscl__Vector.html#a10">front</a>()<span class="keyword"> const</span> 20100331 <span class="keyword"> </span>{ 20200332 <span class="keywordflow">return</span> *<a class="code" href="classOscl__Vector.html#a17">begin</a>(); 20300333 } 20400334 205<a name="l00338"></a><a class="code" href="classOscl__Vector.html#a12">00338</a> T& <a class="code" href="classOscl__Vector.html#a12">back</a>() 20600339 { 20700340 <span class="keywordflow">return</span> (*(<a class="code" href="classOscl__Vector.html#a18">end</a>() - 1)); 20800341 } 20900342 210<a name="l00346"></a><a class="code" href="classOscl__Vector.html#a13">00346</a> <span class="keyword">const</span> T& <a class="code" href="classOscl__Vector.html#a12">back</a>()<span class="keyword"> const</span> 21100347 <span class="keyword"> </span>{ 21200348 <span class="keywordflow">return</span> (*(<a class="code" href="classOscl__Vector.html#a18">end</a>() - 1)); 21300349 } 21400350 215<a name="l00354"></a><a class="code" href="classOscl__Vector.html#a14">00354</a> <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector.html#a14">pop_back</a>() 21600355 { 21700356 <a class="code" href="group__osclbase.html#a78">OSCL_ASSERT</a>(<a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>); 21800357 <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>--; 21900358 <a class="code" href="classOscl__Vector.html#a16">destroy</a>(<a class="code" href="classOscl__Vector.html#a18">end</a>()); 22000359 } 22100360 222<a name="l00364"></a><a class="code" href="classOscl__Vector.html#a15">00364</a> <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector.html#a15">clear</a>() 22300365 { 22400366 <a class="code" href="classOscl__Vector__Base.html#b8">Oscl_Vector_Base::erase</a>(<a class="code" href="classOscl__Vector.html#a17">begin</a>(), <a class="code" href="classOscl__Vector.html#a18">end</a>()); 22500367 } 22600368 227<a name="l00372"></a><a class="code" href="classOscl__Vector.html#a16">00372</a> <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector.html#a16">destroy</a>() 22800373 { 22900374 <a class="code" href="classOscl__Vector__Base.html#b11">Oscl_Vector_Base::destroy</a>(); 23000375 } 23100376 232<a name="l00380"></a><a class="code" href="classOscl__Vector.html#a17">00380</a> <a class="code" href="classOscl__Vector.html#s4">iterator</a> <a class="code" href="classOscl__Vector.html#a17">begin</a>()<span class="keyword"> const</span> 23300381 <span class="keyword"> </span>{ 23400382 <span class="keywordflow">return</span> (pointer)<a class="code" href="classOscl__Vector__Base.html#n2">elems</a>; 23500383 } 23600384 237<a name="l00388"></a><a class="code" href="classOscl__Vector.html#a18">00388</a> <a class="code" href="classOscl__Vector.html#s4">iterator</a> <a class="code" href="classOscl__Vector.html#a18">end</a>()<span class="keyword"> const</span> 23800389 <span class="keyword"> </span>{ 23900390 <span class="keywordflow">return</span> (pointer)<a class="code" href="classOscl__Vector__Base.html#n2">elems</a> + <a class="code" href="classOscl__Vector__Base.html#n0">numelems</a>; 24000391 } 24100392 242<a name="l00399"></a><a class="code" href="classOscl__Vector.html#a19">00399</a> <a class="code" href="classOscl__Vector.html#s4">iterator</a> <a class="code" href="classOscl__Vector.html#a19">erase</a>(<a class="code" href="classOscl__Vector.html#s4">iterator</a> pos) 24300400 { 24400401 <span class="keywordflow">return</span> (iterator)<a class="code" href="classOscl__Vector__Base.html#b8">Oscl_Vector_Base::erase</a>(pos); 24500402 } 24600403 247<a name="l00411"></a><a class="code" href="classOscl__Vector.html#a20">00411</a> <a class="code" href="classOscl__Vector.html#s4">iterator</a> <a class="code" href="classOscl__Vector.html#a19">erase</a>(<a class="code" href="classOscl__Vector.html#s4">iterator</a> first, <a class="code" href="classOscl__Vector.html#s4">iterator</a> last) 24800412 { 24900413 <span class="keywordflow">return</span> (iterator)<a class="code" href="classOscl__Vector__Base.html#b8">Oscl_Vector_Base::erase</a>(first, last); 25000414 } 25100415 25200416 <span class="keyword">private</span>: 25300417 25400418 Alloc defAlloc; 25500419 25600420 <span class="comment">//from Oscl_Opaque_Type_Alloc</span> 25700421 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOscl__Opaque__Type__Alloc.html#a2">allocate</a>(<span class="keyword">const</span> uint32 <a class="code" href="classOscl__Vector__Base.html#a0">size</a>) 25800422 { 25900423 <span class="comment">//prevent zero-size allocations since some allocators don't handle this</span> 26000424 <span class="keywordflow">return</span> (size) ? defAlloc.ALLOCATE(<a class="code" href="classOscl__Vector__Base.html#a0">size</a>) : <a class="code" href="group__osclbase.html#a81">NULL</a>; 26100425 } 26200426 26300427 <span class="comment">//from Oscl_Opaque_Type_Alloc</span> 26400428 <span class="keywordtype">void</span> <a class="code" href="classOscl__Opaque__Type__Alloc.html#a3">deallocate</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* p) 26500429 { 26600430 defAlloc.deallocate(p); 26700431 } 26800432 26900433 <span class="comment">//from Oscl_Opaque_Type_Alloc</span> 27000434 <span class="keywordtype">void</span> <a class="code" href="classOscl__Opaque__Type__Alloc.html#a0">construct</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* p, <span class="keyword">const</span> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* x) 27100435 { 27200436 <a class="code" href="group__osclbase.html#a78">OSCL_ASSERT</a>(x); 27300437 <span class="keyword">new</span>(p) <a class="code" href="classOscl__Vector.html#s0">value_type</a>(*((T*)x)); 27400438 } 27500439 27600440 <span class="comment">//from Oscl_Opaque_Type_Alloc</span> 27700441 <span class="keywordtype">void</span> <a class="code" href="classOscl__Vector.html#a16">destroy</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* first) 27800442 { 27900443 <a class="code" href="group__osclbase.html#a78">OSCL_ASSERT</a>(first); 28000444 <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(first); 28100445 <span class="comment">//note: must use "pointer" instead of "T*" here to avoid ADS 1.2 compile error.</span> 28200446 ((pointer)first)->~T(); 28300447 } 28400448 28500449 }; 28600450 28700451 28800455 <span class="preprocessor">#endif</span> 28900456 <span class="preprocessor"></span> 29000457 29100458 29200459 29300460 294</pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small> 295<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small> 296</small></address> 297</body> 298</html> 299