classvtarray.html
来自「VC下实现图像处理。 VC下实现图像处理。 VC下实现图像处理。」· HTML 代码 · 共 758 行 · 第 1/3 页
HTML
758 行
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>vtdata library: vtArray< E > Class Template Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"><link href="tabs.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.4.5 --><div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li id="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul></div><div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul></div><h1>vtArray< E > Class Template Reference</h1><!-- doxytag: class="vtArray" --><a href="classvtArray-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr><tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#41f46e78fd6742a034b397e7daf4aa14">vtArray</a> (unsigned int size=0)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#b22928b2c4f86df8f6f416b59b48ce4d">vtArray</a> (const <a class="el" href="classvtArray.html">vtArray</a>< E > &)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#b9effa33dbfeb98cf80fb25d56805963">~vtArray</a> ()</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f2259ebe9d1c07ceb60119edb0a86416"></a><!-- doxytag: member="vtArray::GetSize" ref="f2259ebe9d1c07ceb60119edb0a86416" args="() const " -->unsigned int </td><td class="memItemRight" valign="bottom"><b>GetSize</b> () const </td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="91d51a9c47153710eabd1df894cd40d0"></a><!-- doxytag: member="vtArray::GetMaxSize" ref="91d51a9c47153710eabd1df894cd40d0" args="() const " -->unsigned int </td><td class="memItemRight" valign="bottom"><b>GetMaxSize</b> () const </td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#40e58c152ada0139faa78fb2495d5d80">SetSize</a> (unsigned int)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#9f04d263f4e82a771d106f203393edb1">SetMaxSize</a> (unsigned int)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0e01d3b1600a0fa845dbca65b91b0017"></a><!-- doxytag: member="vtArray::GetElemSize" ref="0e01d3b1600a0fa845dbca65b91b0017" args="() const " -->unsigned int </td><td class="memItemRight" valign="bottom"><b>GetElemSize</b> () const </td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3d40434e71f394c54386d5664adc3dce"></a><!-- doxytag: member="vtArray::GetData" ref="3d40434e71f394c54386d5664adc3dce" args="() const " -->E * </td><td class="memItemRight" valign="bottom"><b>GetData</b> () const </td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#479ebc765d2d240345597ecf68c6cf70">IsEmpty</a> () const </td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">E & </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#f6e871aae94fe8ffe6d55c3fb5ba813a">GetAt</a> (unsigned int i) const </td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#293a85ce4234579889beaec4a79e4aac">SetAt</a> (unsigned int i, E)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="748e33b2a729bf6e6d29656ca324e318"></a><!-- doxytag: member="vtArray::operator=" ref="748e33b2a729bf6e6d29656ca324e318" args="(const vtArray< E > &)" --><a class="el" href="classvtArray.html">vtArray</a>< E > & </td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classvtArray.html">vtArray</a>< E > &)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="fe03dd538ce368a45f1edb313707dd97"></a><!-- doxytag: member="vtArray::operator[]" ref="fe03dd538ce368a45f1edb313707dd97" args="(unsigned int i)" -->E & </td><td class="memItemRight" valign="bottom"><b>operator[]</b> (unsigned int i)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1ae7c700520918d4e76683a2a632527"></a><!-- doxytag: member="vtArray::operator[]" ref="a1ae7c700520918d4e76683a2a632527" args="(unsigned int i) const " -->const E & </td><td class="memItemRight" valign="bottom"><b>operator[]</b> (unsigned int i) const </td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#ae22276c7490efee40cd72529c7a83b3">Empty</a> ()</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#277b6409ae98fc1479707e0f5468ce26">RemoveAt</a> (unsigned int i, int n=1)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#f45cfa28deec67089450dd878dbc5d22">Append</a> (const E &)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#5cf1bce6ee224c77bbccc649f652cc2a">Append</a> (const <a class="el" href="classvtArray.html">vtArray</a>< E > &)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#e78a2d1a23107684c59be8ad4dd01c87">Find</a> (const E &) const </td></tr><tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#81ebc1b67b973028c847277c64cfcdd3">Grow</a> (unsigned int)</td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classvtArray.html#0542f0d51605242eb575d2ad0bb2d0fa">DestructItems</a> (unsigned int first, unsigned int last)</td></tr><tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7b186ab36cc45d92f34076c3707160cc"></a><!-- doxytag: member="vtArray::m_Size" ref="7b186ab36cc45d92f34076c3707160cc" args="" -->unsigned int </td><td class="memItemRight" valign="bottom"><b>m_Size</b></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="18709489861c121b62ee81fc6119ac17"></a><!-- doxytag: member="vtArray::m_MaxSize" ref="18709489861c121b62ee81fc6119ac17" args="" -->unsigned int </td><td class="memItemRight" valign="bottom"><b>m_MaxSize</b></td></tr><tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1d2417259c55d901777151301b524583"></a><!-- doxytag: member="vtArray::m_Data" ref="1d2417259c55d901777151301b524583" args="" -->E * </td><td class="memItemRight" valign="bottom"><b>m_Data</b></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2><h3>template<class E><br> class vtArray< E ></h3>An Array template which automatically grows as you add or set entities.<p>Note that construction and destruction is not done automatically if the entities are class objects. You can provide this destruction yourself by overriding the DestructItems method, but it is easier to use this template for objects with simple value semantics such as basic types (int, float..), structs, and pointers. If you do create a subclass like this: <div class="fragment"><pre class="fragment"> <span class="keyword">class </span>MyArray : <span class="keyword">public</span> <a class="code" href="classvtArray.html">vtArray</a><MyObject *> {};</pre></div> note that you will need to provide not only a <a class="el" href="classvtArray.html#0542f0d51605242eb575d2ad0bb2d0fa">DestructItems()</a> implementation, but also a destructor. This is because the default vtArray destructor is not smart enough to call your <a class="el" href="classvtArray.html#0542f0d51605242eb575d2ad0bb2d0fa">DestructItems()</a> method (it will call the base <a class="el" href="classvtArray.html#0542f0d51605242eb575d2ad0bb2d0fa">DestructItems()</a> instead, which does nothing).<p>A full working example is: <div class="fragment"><pre class="fragment"> <span class="keyword">class </span>MyArray : <span class="keyword">public</span> <a class="code" href="classvtArray.html">vtArray</a><MyObject *> { <span class="keyword">virtual</span> ~MyArray() { <a class="code" href="classvtArray.html#ae22276c7490efee40cd72529c7a83b3">Empty</a>(); free(m_Data); m_Data = NULL; m_MaxSize = 0; } <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classvtArray.html#0542f0d51605242eb575d2ad0bb2d0fa">DestructItems</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> first, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> last) { <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = first; i <= last; i++) <span class="keyword">delete</span> <a class="code" href="classvtArray.html#f6e871aae94fe8ffe6d55c3fb5ba813a">GetAt</a>(i); } };</pre></div> <p><hr><h2>Constructor & Destructor Documentation</h2><a class="anchor" name="41f46e78fd6742a034b397e7daf4aa14"></a><!-- doxytag: member="vtArray::vtArray" ref="41f46e78fd6742a034b397e7daf4aa14" args="(unsigned int size=0)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4">template<class E> </td> </tr> <tr> <td class="md" nowrap valign="top"><a class="el" href="classvtArray.html">vtArray</a>< E >::<a class="el" href="classvtArray.html">vtArray</a> </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">unsigned int </td> <td class="mdname1" valign="top" nowrap> <em>size</em> = <code>0</code> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>Creates and initializes an empty array (array with no elements).<p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>size</em> </td><td>number of elements data area should initially make room for (initial value of [MaxSize]). If zero, little initial space is allocated but the array will grow dynamically as space is needed.</td></tr> </table></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classvtArray.html#9f04d263f4e82a771d106f203393edb1">vtArray::SetMaxSize</a> <a class="el" href="classvtArray.html#40e58c152ada0139faa78fb2495d5d80">vtArray::SetSize</a></dd></dl><dl compact><dt><b>Example:</b></dt><dd><div class="fragment"><pre class="fragment"> vtArray<void*> foo; <span class="comment">// empty array of pointers</span></pre></div> </dd></dl> </td> </tr></table><a class="anchor" name="b22928b2c4f86df8f6f416b59b48ce4d"></a><!-- doxytag: member="vtArray::vtArray" ref="b22928b2c4f86df8f6f416b59b48ce4d" args="(const vtArray< E > &)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4">template<class E> </td> </tr> <tr> <td class="md" nowrap valign="top"><a class="el" href="classvtArray.html">vtArray</a>< E >::<a class="el" href="classvtArray.html">vtArray</a> </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classvtArray.html">vtArray</a>< E > & </td> <td class="mdname1" valign="top" nowrap> <em>a</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>Creates and initializes an array from another (of the same type).<p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>a</em> </td><td>An array to copy from. </td></tr> </table></dl> </td> </tr></table><a class="anchor" name="b9effa33dbfeb98cf80fb25d56805963"></a><!-- doxytag: member="vtArray::~vtArray" ref="b9effa33dbfeb98cf80fb25d56805963" args="()" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4">template<class E> </td> </tr> <tr> <td class="md" nowrap valign="top"><a class="el" href="classvtArray.html">vtArray</a>< E >::~<a class="el" href="classvtArray.html">vtArray</a> </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap><code> [inline, virtual]</code></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>Destructor for array class. </td> </tr></table><hr><h2>Member Function Documentation</h2><a class="anchor" name="5cf1bce6ee224c77bbccc649f652cc2a"></a><!-- doxytag: member="vtArray::Append" ref="5cf1bce6ee224c77bbccc649f652cc2a" args="(const vtArray< E > &)" --><p><table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="mdPrefix" colspan="4">template<class E> </td> </tr> <tr> <td class="md" nowrap valign="top">int <a class="el" href="classvtArray.html">vtArray</a>< E >::Append </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classvtArray.html">vtArray</a>< E > & </td> <td class="mdname1" valign="top" nowrap> <em>src</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td><p>Concatenates the contents of the source array into the destination array. The destination array is enlarged if possible. When an object array is appended, the objects are multiply referenced (not duplicated).<p><dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em><src></em> </td><td>Source array containing elements to be appended</td></tr> </table></dl><dl compact><dt><b>Returns:</b></dt><dd>index of last element successfully added or -1 on error</dd></dl><dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classvtArray.html#f45cfa28deec67089450dd878dbc5d22">vtArray::Append</a> <a class="el" href="classvtArray.html#293a85ce4234579889beaec4a79e4aac">vtArray::SetAt</a></dd></dl><dl compact><dt><b>Examples:</b></dt><dd><div class="fragment"><pre class="fragment"> <span class="keywordtype">int</span> zap[3] = { 1, 2, 3 };
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?