⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 array_8h-source.html

📁 俄罗斯牛人KK的作品,著名的ORDBMS,这里上传最新的3.39版本源代码.希望了解对象关系数据库的同好,请不要错过.
💻 HTML
📖 第 1 页 / 共 2 页
字号:
00181         allocated = len;00182         <span class="keywordflow">return</span> *<span class="keyword">this</span>;00183     }00184 <a name="l00189"></a><a class="code" href="classdbArray.html#dbArraya7">00189</a>     T <span class="keyword">const</span>&amp; <a class="code" href="classdbArray.html#dbArraya7">last</a>() {00190         assert(len &gt; 0);00191         <span class="keywordflow">return</span> data[len-1];00192     }00193 <a name="l00201"></a><a class="code" href="classdbArray.html#dbArraya8">00201</a>     <span class="keywordtype">void</span> <a class="code" href="classdbArray.html#dbArraya8">assign</a>(T <span class="keyword">const</span>* ptr, size_t size, <span class="keywordtype">bool</span> copy = <span class="keyword">true</span>) { 00202         <span class="keywordflow">if</span> (allocated) { 00203             <span class="keyword">delete</span>[] data;00204         }00205         len = size;00206         <span class="keywordflow">if</span> (copy &amp;&amp; size != 0) { 00207             data = <span class="keyword">new</span> T[size];00208             memcpy(data, ptr, size);    00209             allocated = size;00210         } <span class="keywordflow">else</span> { 00211             data = (T*)ptr;00212             allocated = 0;00213         }00214     }00215 <a name="l00221"></a><a class="code" href="classdbArray.html#dbArraya9">00221</a>     T <span class="keyword">const</span>&amp; <a class="code" href="classdbArray.html#dbArraya9">operator []</a>(size_t index)<span class="keyword"> const </span>{ 00222         assert(index &lt; len);00223         <span class="keywordflow">return</span> data[index];00224     }00225 <a name="l00231"></a><a class="code" href="classdbArray.html#dbArraya10">00231</a>     <span class="keywordtype">void</span> <a class="code" href="classdbArray.html#dbArraya10">putat</a>(size_t index, T <span class="keyword">const</span>&amp; value) { 00232         assert(index &lt; len);00233         <span class="keywordflow">if</span> (!allocated) { 00234             T* copy = <span class="keyword">new</span> T[len];00235             memcpy(copy, data, len);00236             data = copy;00237             allocated = len;00238         }00239         data[index] = value;00240     }00241 00242     <a name="l00248"></a><a class="code" href="classdbArray.html#dbArraya11">00248</a>     T <span class="keyword">const</span>&amp; <a class="code" href="classdbArray.html#dbArraya11">getat</a>(size_t index)<span class="keyword"> const </span>{00249         assert(index &lt; len);00250         <span class="keywordflow">return</span> data[index];00251     }00252 <a name="l00256"></a><a class="code" href="classdbArray.html#dbArraya12">00256</a>     <span class="keywordtype">void</span> <a class="code" href="classdbArray.html#dbArraya12">clear</a>() { 00257         <span class="keywordflow">if</span> (allocated) {00258             <span class="keyword">delete</span>[] data;00259         }00260         data = NULL;00261         len = 0;00262         allocated = 0;00263     }00264 <a name="l00269"></a><a class="code" href="classdbArray.html#dbArraya13">00269</a>     <span class="keywordtype">void</span> <a class="code" href="classdbArray.html#dbArraya13">resize</a>(size_t size) { 00270         <span class="keywordflow">if</span> (size &gt; len &amp;&amp; size &gt; allocated) { 00271             T* p = <span class="keyword">new</span> T[size];00272             memcpy(p, data, len);00273             <span class="keywordflow">if</span> (allocated) { 00274                 <span class="keyword">delete</span>[] data;00275             }00276             data = p;00277             allocated = size;00278         }00279         len = size;00280     }00281 <a name="l00286"></a><a class="code" href="classdbArray.html#dbArraya14">00286</a>     <span class="keywordtype">void</span> <a class="code" href="classdbArray.html#dbArraya14">append</a>(T <span class="keyword">const</span>&amp; value) { 00287         <a class="code" href="classdbArray.html#dbArraya15">insert</a>(value, len);00288     }00289 <a name="l00295"></a><a class="code" href="classdbArray.html#dbArraya15">00295</a>     <span class="keywordtype">void</span> <a class="code" href="classdbArray.html#dbArraya15">insert</a>(T <span class="keyword">const</span>&amp; value, size_t index = 0) { 00296         assert(index &lt;= len);00297         <span class="keywordflow">if</span> (len &gt;= allocated) {00298             size_t newSize = len == 0 ? 8 : len*2;00299             T* p = <span class="keyword">new</span> T[newSize];00300             memcpy(p, data, index);00301             p[index] = value;00302             memcpy(p+index+1, data+index, (len-index));00303             <span class="keywordflow">if</span> (allocated) { 00304                 <span class="keyword">delete</span>[] data;00305             }00306             data = p;00307             allocated = newSize;00308         } <span class="keywordflow">else</span> { 00309             memmove(data+index+1, data+index, (len-index));00310             data[index] = value;00311         }00312         len += 1;00313     }00314     <a name="l00319"></a><a class="code" href="classdbArray.html#dbArraya16">00319</a>     <span class="keywordtype">void</span> <a class="code" href="classdbArray.html#dbArraya16">remove</a>(size_t index) { 00320         assert(index &lt; len);00321         len -= 1;00322         <span class="keywordflow">if</span> (index != len &amp;&amp; !allocated) { 00323             T* p = <span class="keyword">new</span> T[len];00324             memcpy(p, data, index);00325             memcpy(p+index, data+index+1, (len-index));00326             allocated = len;00327             data = p;00328         } <span class="keywordflow">else</span> { 00329             memmove(data+index, data+index+1, (len-index));00330         }00331     }00332 <a name="l00337"></a><a class="code" href="classdbArray.html#dbArraya17">00337</a>     T <span class="keyword">const</span>* <a class="code" href="classdbArray.html#dbArraya17">get</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data; }00338 <a name="l00343"></a><a class="code" href="classdbArray.html#dbArraya18">00343</a>     T* <a class="code" href="classdbArray.html#dbArraya18">update</a>() { 00344         <span class="keywordflow">if</span> (!allocated) {00345             T* copy = <span class="keyword">new</span> T[len];00346             memcpy(copy, data, len);00347             data = copy;00348             allocated = len;00349         }00350         <span class="keywordflow">return</span> data; 00351     }00352 };00353 00354 00360 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;00361 <span class="keywordtype">int</span> index(<a class="code" href="classdbArray.html">dbArray&lt;T&gt;</a> <span class="keyword">const</span>&amp; a, T value) {00362     <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0, n = a.<a class="code" href="classdbAnyArray.html#dbArraya19">length</a>(); i &lt; n; i++) {00363       <span class="keywordflow">if</span> (a[i] == value) {00364           <span class="keywordflow">return</span> i;00365       }00366     }00367     <span class="keywordflow">return</span> -1;00368 }00369 00375 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;00376 <span class="keywordtype">int</span> rindex(<a class="code" href="classdbArray.html">dbArray&lt;T&gt;</a> <span class="keyword">const</span>&amp; a, T value) {00377     <span class="keywordtype">int</span> i = a.<a class="code" href="classdbAnyArray.html#dbArraya19">length</a>();00378     <span class="keywordflow">while</span> (--i &gt;= 0 &amp;&amp; a[i] != value);00379     <span class="keywordflow">return</span> i;00380 }00381 00382 END_FASTDB_NAMESPACE00383 00384 <span class="preprocessor">#endif</span>00385 <span class="preprocessor"></span></pre></div><hr><address style="align: right;"><small>Generated on Mon Oct 23 13:23:57 2006 for FastDB by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -