Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > 4f5f2dc0f55b453456458df885792b0b > files > 447

ucommon-doc-5.0.4-1mdv2010.2.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>ucommon: ucommon::Vector Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="a00208.html">ucommon</a>::<a class="el" href="a00172.html">Vector</a>
  </div>
</div>
<div class="contents">
<h1>ucommon::Vector Class Reference</h1><!-- doxytag: class="ucommon::Vector" -->
<p>A managed vector for generic object pointers.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00206_source.html">vector.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ucommon::Vector:</div>
<div class="dynsection">
<div class="center"><img src="a00567.png" border="0" usemap="#ucommon_1_1_vector_inherit__map" alt="Inheritance graph"/></div>
<map name="ucommon_1_1_vector_inherit__map" id="ucommon_1_1_vector_inherit__map">
<area shape="rect" id="node3" href="a00083.html" title="Vector with fixed size member list." alt="" coords="45,80,248,107"/><area shape="rect" id="node7" href="a00174.html" title="A templated vector for a list of a specific Object subtype." alt="" coords="272,80,515,107"/><area shape="rect" id="node5" href="a00173.html" title="Allocated vector list of a specified type." alt="" coords="5,155,288,181"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a66697a02a07888f6494bd4a03b86db57">add</a> (<a class="el" href="a00172.html">Vector</a> &amp;vector)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add (append) an existing vector to our vector.  <a href="#a66697a02a07888f6494bd4a03b86db57"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ad66d783b0423f650b5bb083553b4f36c">add</a> (<a class="el" href="a00095.html">ObjectProtocol</a> *<a class="el" href="a00110.html">pointer</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add (append) a single object pointer to the vector.  <a href="#ad66d783b0423f650b5bb083553b4f36c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a248d338cf9a94620d967bb9c2b440586">add</a> (<a class="el" href="a00095.html">ObjectProtocol</a> **list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add (append) a NULL terminated list of objects to the vector.  <a href="#a248d338cf9a94620d967bb9c2b440586"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a30098b2ce74e45f7314fba4dd7701ef7">begin</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the first object pointer contained in the vector.  <a href="#a30098b2ce74e45f7314fba4dd7701ef7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4022d71a3ac639121735f19e2bc11c1"></a><!-- doxytag: member="ucommon::Vector::clear" ref="af4022d71a3ac639121735f19e2bc11c1" args="(void)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#af4022d71a3ac639121735f19e2bc11c1">clear</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">De-reference and remove all pointers from the vector. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a61d9a7ff1a2b3e6d0b0a34429403b2e6">end</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the last object pointer contained in the vector.  <a href="#a61d9a7ff1a2b3e6d0b0a34429403b2e6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">vectorsize_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#afd72c722215cf45d85ab0daf74db38eb">find</a> (<a class="el" href="a00095.html">ObjectProtocol</a> *<a class="el" href="a00110.html">pointer</a>, vectorsize_t offset=0) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the first instance of a specific pointer in the vector.  <a href="#afd72c722215cf45d85ab0daf74db38eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">vectorsize_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a7da82f519dab7fa603893e9f83c6c5f5">get</a> (void **mem, vectorsize_t max) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy the vector to an external pointer array.  <a href="#a7da82f519dab7fa603893e9f83c6c5f5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a0580bf82563b6dd271cab0adeedcc093">get</a> (int index) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get an object pointer from a specified member of the vector.  <a href="#a0580bf82563b6dd271cab0adeedcc093"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">vectorsize_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a85f899fc5cb7374c4fb3b277644c4ff5">len</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the size of the vector (number of active members).  <a href="#a85f899fc5cb7374c4fb3b277644c4ff5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ad4559dda359858a77c8c2968d4dc7a5e">operator()</a> (<a class="el" href="a00095.html">ObjectProtocol</a> *<a class="el" href="a00110.html">pointer</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append a member to the vector directly.  <a href="#ad4559dda359858a77c8c2968d4dc7a5e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a038501602335e5b2b63b2a087717a3ce">operator()</a> (vectorsize_t position)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve a member of the vector directly.  <a href="#a038501602335e5b2b63b2a087717a3ce"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a89b125b8e93bbe6560f356d4b696f697">operator()</a> (vectorsize_t position, <a class="el" href="a00095.html">ObjectProtocol</a> *<a class="el" href="a00110.html">pointer</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign a member of the vector directly.  <a href="#a89b125b8e93bbe6560f356d4b696f697"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00172.html">Vector</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a33194c758e5d3a85a08b8e45f90d09ed">operator+</a> (<a class="el" href="a00172.html">Vector</a> &amp;vector)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Concatenate into our existing vector from assignment list.  <a href="#a33194c758e5d3a85a08b8e45f90d09ed"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3bd5fd30725cee0141861774f2bd06bc"></a><!-- doxytag: member="ucommon::Vector::operator++" ref="a3bd5fd30725cee0141861774f2bd06bc" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a3bd5fd30725cee0141861774f2bd06bc">operator++</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drop first member of vector. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ab145d174c3e0eec5fac5d1177d09c151">operator+=</a> (vectorsize_t count)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drop first specified members from the vector.  <a href="#ab145d174c3e0eec5fac5d1177d09c151"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a7a6c50d38686380465e2d37795b006e5">operator+=</a> (<a class="el" href="a00172.html">Vector</a> &amp;vector)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append into our existing vector from another vector.  <a href="#a7a6c50d38686380465e2d37795b006e5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac627d36101b97aa21b91aa78a3838b8a"></a><!-- doxytag: member="ucommon::Vector::operator&#45;&#45;" ref="ac627d36101b97aa21b91aa78a3838b8a" args="()" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ac627d36101b97aa21b91aa78a3838b8a">operator--</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drop last member of the vector. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a92dbfcfa40220f0a4e6f62b550272b64">operator-=</a> (vectorsize_t count)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Drop last specified members from the vector.  <a href="#a92dbfcfa40220f0a4e6f62b550272b64"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a04f44c8b832ecca2c5832bd1ed6d5884">operator=</a> (<a class="el" href="a00172.html">Vector</a> &amp;vector)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assign (copy) into our existing vector from another vector.  <a href="#a04f44c8b832ecca2c5832bd1ed6d5884"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ae4c14b2123c4b07eab1e7bdfc68728a2">operator[]</a> (int index)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a pointer from the vector by array reference.  <a href="#ae4c14b2123c4b07eab1e7bdfc68728a2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00172.html">Vector</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a252b656b9d40aaeb947da5a0040f43a5">operator^</a> (<a class="el" href="a00172.html">Vector</a> &amp;vector)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release vector and concat vector from another vector.  <a href="#a252b656b9d40aaeb947da5a0040f43a5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a25fb1a3b98585569335693d4efaee854">operator^=</a> (<a class="el" href="a00172.html">Vector</a> &amp;vector)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Release our existing vector and duplicate from another vector.  <a href="#a25fb1a3b98585569335693d4efaee854"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a1b2d301ffc6ddba7402e01e4590f5fc0">resize</a> (vectorsize_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Re-size &amp; re-allocate the total (allocated) size of the vector.  <a href="#a1b2d301ffc6ddba7402e01e4590f5fc0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a18131ae2537ff1a951b485f6f4e33b07">rsplit</a> (vectorsize_t position)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split the vector after a specified offset.  <a href="#a18131ae2537ff1a951b485f6f4e33b07"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a1f2244d669e08ce6a9683bc1e1bc48ea">set</a> (<a class="el" href="a00172.html">Vector</a> &amp;vector)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set (duplicate) an existing vector into our vector.  <a href="#a1f2244d669e08ce6a9683bc1e1bc48ea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#aaaee65984e9d84ea1d744ba68a03b77a">set</a> (<a class="el" href="a00095.html">ObjectProtocol</a> **list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the vector to a list of objects terminated by a NULL pointer.  <a href="#aaaee65984e9d84ea1d744ba68a03b77a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#ac7b3e1da4d1dd7f2c91547557bc1828a">set</a> (vectorsize_t position, <a class="el" href="a00095.html">ObjectProtocol</a> *<a class="el" href="a00110.html">pointer</a>)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a member of the vector to an object.  <a href="#ac7b3e1da4d1dd7f2c91547557bc1828a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">vectorsize_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a25b647414265232cecc5b58cb4a8f110">size</a> (void) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the effective allocation space used by the vector.  <a href="#a25b647414265232cecc5b58cb4a8f110"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a0eeae432ea3829996df00f6a83e6ac49">split</a> (vectorsize_t position)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Split the vector at a specified offset.  <a href="#a0eeae432ea3829996df00f6a83e6ac49"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a9fc3c21669800d5a2ca9e71f9744f3db">Vector</a> (<a class="el" href="a00095.html">ObjectProtocol</a> **items, vectorsize_t size=0)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a vector of size objects from existing object pointers.  <a href="#a9fc3c21669800d5a2ca9e71f9744f3db"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a5bb7d0c9c2837e7ee3a61f3c4debec05">Vector</a> (vectorsize_t size)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create a vector of size object pointers.  <a href="#a5bb7d0c9c2837e7ee3a61f3c4debec05"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36fa71c2db3d3f1ed1224c50e9ffaa52"></a><!-- doxytag: member="ucommon::Vector::Vector" ref="a36fa71c2db3d3f1ed1224c50e9ffaa52" args="()" -->
&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a36fa71c2db3d3f1ed1224c50e9ffaa52">Vector</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an initially empty vector. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a74db628cf45f4e5f89efc401fc123baf"></a><!-- doxytag: member="ucommon::Vector::~Vector" ref="a74db628cf45f4e5f89efc401fc123baf" args="()" -->
virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a74db628cf45f4e5f89efc401fc123baf">~Vector</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Destroy the current reference counted vector of object pointers. <br/></td></tr>
<tr><td colspan="2"><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static vectorsize_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a779dd27d7e66b1b34a9a3274f04e2a32">size</a> (void **list)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compute the effective vector size of a list of object pointers.  <a href="#a779dd27d7e66b1b34a9a3274f04e2a32"></a><br/></td></tr>
<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a206289baf5f1e45399faf730fc03ca70"></a><!-- doxytag: member="ucommon::Vector::npos" ref="a206289baf5f1e45399faf730fc03ca70" args="" -->
static const vectorsize_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00172.html#a206289baf5f1e45399faf730fc03ca70">npos</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">npos is a constant for an "invalid" position value. <br/></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ade0e63bb1cbbc03bdbcecb8988d887b2"></a><!-- doxytag: member="ucommon::Vector::cow" ref="ade0e63bb1cbbc03bdbcecb8988d887b2" args="(vectorsize_t adj=0)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>cow</b> (vectorsize_t adj=0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75343db03186b1e7e4e801af5d0910cf"></a><!-- doxytag: member="ucommon::Vector::create" ref="a75343db03186b1e7e4e801af5d0910cf" args="(vectorsize_t size) const " -->
array *&nbsp;</td><td class="memItemRight" valign="bottom"><b>create</b> (vectorsize_t size) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f6212fd8bacc8c97b8b33b78bfb2844"></a><!-- doxytag: member="ucommon::Vector::list" ref="a0f6212fd8bacc8c97b8b33b78bfb2844" args="(void) const " -->
<a class="el" href="a00095.html">ObjectProtocol</a> **&nbsp;</td><td class="memItemRight" valign="bottom"><b>list</b> (void) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab1040adff6fdfe80985d33a19f73d66b"></a><!-- doxytag: member="ucommon::Vector::release" ref="ab1040adff6fdfe80985d33a19f73d66b" args="(void)" -->
virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><b>release</b> (void)</td></tr>
<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a846aea9c079b323fc90b9e1098e6b333"></a><!-- doxytag: member="ucommon::Vector::data" ref="a846aea9c079b323fc90b9e1098e6b333" args="" -->
array *&nbsp;</td><td class="memItemRight" valign="bottom"><b>data</b></td></tr>
<tr><td colspan="2"><h2>Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7604288543d380cd72a5d4e93b3291c"></a><!-- doxytag: member="ucommon::Vector::Vector::array" ref="ae7604288543d380cd72a5d4e93b3291c" args="" -->
class&nbsp;</td><td class="memItemRight" valign="bottom"><b>Vector::array</b></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A managed vector for generic object pointers. </p>
<p>This vector is memory managed at runtime by basic cow (copy-on-write) operations of a reference counted object list. This allows the size of the vector to be changed at runtime and for the vector to be copied by managing reference counted copies of the list of objects as needed.</p>
<p>This class is somewhat analogous to the string class, but rather than holding a string "array of chars" that may be re-sized and reallocated, the <a class="el" href="a00172.html" title="A managed vector for generic object pointers.">Vector</a> holds an array of Object pointers. Since the object pointers we store in the vector are objects inherited from Object, a vector can itself act as a vector of smart pointers to reference counted objects (derived from <a class="el" href="a00039.html" title="A base class for reference counted objects.">CountedObject</a>). </p>
<dl class="author"><dt><b>Author:</b></dt><dd>David Sugar &lt;<a href="mailto:dyfet@gnutelephony.org">dyfet@gnutelephony.org</a>&gt;. </dd></dl>

<p>Definition at line <a class="el" href="a00206_source.html#l00107">107</a> of file <a class="el" href="a00206_source.html">vector.h</a>.</p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a5bb7d0c9c2837e7ee3a61f3c4debec05"></a><!-- doxytag: member="ucommon::Vector::Vector" ref="a5bb7d0c9c2837e7ee3a61f3c4debec05" args="(vectorsize_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::Vector::Vector </td>
          <td>(</td>
          <td class="paramtype">vectorsize_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a vector of size object pointers. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of vector to create. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9fc3c21669800d5a2ca9e71f9744f3db"></a><!-- doxytag: member="ucommon::Vector::Vector" ref="a9fc3c21669800d5a2ca9e71f9744f3db" args="(ObjectProtocol **items, vectorsize_t size=0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ucommon::Vector::Vector </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00095.html">ObjectProtocol</a> **&nbsp;</td>
          <td class="paramname"> <em>items</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vectorsize_t&nbsp;</td>
          <td class="paramname"> <em>size</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a vector of size objects from existing object pointers. </p>
<p>This allocates the vector and initializes the object pointers from an existing array of object pointers. Either a specific vector size may be used, or the end of the vector will be found by a NULL object pointer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>items</em>&nbsp;</td><td>to place into the vector. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>of the vector to create, or use NULL item for end. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a66697a02a07888f6494bd4a03b86db57"></a><!-- doxytag: member="ucommon::Vector::add" ref="a66697a02a07888f6494bd4a03b86db57" args="(Vector &amp;vector)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00172.html">Vector</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>vector</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add (append) an existing vector to our vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>vector</em>&nbsp;</td><td>to append. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00206_source.html#l00285">285</a> of file <a class="el" href="a00206_source.html">vector.h</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<div class="center"><img src="a00172_a66697a02a07888f6494bd4a03b86db57_cgraph.png" border="0" usemap="#a00172_a66697a02a07888f6494bd4a03b86db57_cgraph_map" alt=""></div>
</div>
</p>

</div>
</div>
<a class="anchor" id="ad66d783b0423f650b5bb083553b4f36c"></a><!-- doxytag: member="ucommon::Vector::add" ref="ad66d783b0423f650b5bb083553b4f36c" args="(ObjectProtocol *pointer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td>
          <td class="paramname"> <em>pointer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add (append) a single object pointer to the vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to add to vector. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a248d338cf9a94620d967bb9c2b440586"></a><!-- doxytag: member="ucommon::Vector::add" ref="a248d338cf9a94620d967bb9c2b440586" args="(ObjectProtocol **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::add </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00095.html">ObjectProtocol</a> **&nbsp;</td>
          <td class="paramname"> <em>list</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add (append) a NULL terminated list of objects to the vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of object pointers to add. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a30098b2ce74e45f7314fba4dd7701ef7"></a><!-- doxytag: member="ucommon::Vector::begin" ref="a30098b2ce74e45f7314fba4dd7701ef7" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00095.html">ObjectProtocol</a>* ucommon::Vector::begin </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the first object pointer contained in the vector. </p>
<p>Typically used in iterations. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>first object pointer. </dd></dl>

</div>
</div>
<a class="anchor" id="a61d9a7ff1a2b3e6d0b0a34429403b2e6"></a><!-- doxytag: member="ucommon::Vector::end" ref="a61d9a7ff1a2b3e6d0b0a34429403b2e6" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00095.html">ObjectProtocol</a>* ucommon::Vector::end </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the last object pointer contained in the vector. </p>
<p>Typically used in iterations. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>last object pointer. </dd></dl>

</div>
</div>
<a class="anchor" id="afd72c722215cf45d85ab0daf74db38eb"></a><!-- doxytag: member="ucommon::Vector::find" ref="afd72c722215cf45d85ab0daf74db38eb" args="(ObjectProtocol *pointer, vectorsize_t offset=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vectorsize_t ucommon::Vector::find </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td>
          <td class="paramname"> <em>pointer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vectorsize_t&nbsp;</td>
          <td class="paramname"> <em>offset</em> = <code>0</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Find the first instance of a specific pointer in the vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to locate in the vector. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>to start searching in vector. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>position of pointer in vector or npos if not found. </dd></dl>

</div>
</div>
<a class="anchor" id="a7da82f519dab7fa603893e9f83c6c5f5"></a><!-- doxytag: member="ucommon::Vector::get" ref="a7da82f519dab7fa603893e9f83c6c5f5" args="(void **mem, vectorsize_t max) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vectorsize_t ucommon::Vector::get </td>
          <td>(</td>
          <td class="paramtype">void **&nbsp;</td>
          <td class="paramname"> <em>mem</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vectorsize_t&nbsp;</td>
          <td class="paramname"> <em>max</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy the vector to an external pointer array. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>mem</em>&nbsp;</td><td>array of external pointers to hold vector. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>max</em>&nbsp;</td><td>size of the external array. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of elements copied into external array. </dd></dl>

</div>
</div>
<a class="anchor" id="a0580bf82563b6dd271cab0adeedcc093"></a><!-- doxytag: member="ucommon::Vector::get" ref="a0580bf82563b6dd271cab0adeedcc093" args="(int index) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00095.html">ObjectProtocol</a>* ucommon::Vector::get </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get an object pointer from a specified member of the vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>of member pointer to return. Negative values from end. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>object pointer of member. </dd></dl>

</div>
</div>
<a class="anchor" id="a85f899fc5cb7374c4fb3b277644c4ff5"></a><!-- doxytag: member="ucommon::Vector::len" ref="a85f899fc5cb7374c4fb3b277644c4ff5" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vectorsize_t ucommon::Vector::len </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the size of the vector (number of active members). </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of active pointers in vector. </dd></dl>

</div>
</div>
<a class="anchor" id="ad4559dda359858a77c8c2968d4dc7a5e"></a><!-- doxytag: member="ucommon::Vector::operator()" ref="ad4559dda359858a77c8c2968d4dc7a5e" args="(ObjectProtocol *pointer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::operator() </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td>
          <td class="paramname"> <em>pointer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append a member to the vector directly. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to object to add to vector. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00206_source.html#l00315">315</a> of file <a class="el" href="a00206_source.html">vector.h</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<div class="center"><img src="a00172_ad4559dda359858a77c8c2968d4dc7a5e_cgraph.png" border="0" usemap="#a00172_ad4559dda359858a77c8c2968d4dc7a5e_cgraph_map" alt=""></div>
<map name="a00172_ad4559dda359858a77c8c2968d4dc7a5e_cgraph_map" id="a00172_ad4559dda359858a77c8c2968d4dc7a5e_cgraph">
<area shape="rect" id="node3" href="a00208.html#a0a43af474b84d87df26aa4998bcebb02" title="Add a linked object onto a stack of linked objects." alt="" coords="348,5,489,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a038501602335e5b2b63b2a087717a3ce"></a><!-- doxytag: member="ucommon::Vector::operator()" ref="a038501602335e5b2b63b2a087717a3ce" args="(vectorsize_t position)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00095.html">ObjectProtocol</a>* ucommon::Vector::operator() </td>
          <td>(</td>
          <td class="paramtype">vectorsize_t&nbsp;</td>
          <td class="paramname"> <em>position</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve a member of the vector directly. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>position</em>&nbsp;</td><td>to retrieve object from. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>object pointer retrieved from vector. </dd></dl>

<p>Reimplemented in <a class="el" href="a00174.html#aaa4cfd9ac8922f4de9ec675666e60d62">ucommon::vectorof&lt; T &gt;</a>, and <a class="el" href="a00173.html#ae6135fd1a0ea5fe11a5de766f565a9e9">ucommon::vectorbuf&lt; T, S &gt;</a>.</p>

<p>Definition at line <a class="el" href="a00206_source.html#l00308">308</a> of file <a class="el" href="a00206_source.html">vector.h</a>.</p>

</div>
</div>
<a class="anchor" id="a89b125b8e93bbe6560f356d4b696f697"></a><!-- doxytag: member="ucommon::Vector::operator()" ref="a89b125b8e93bbe6560f356d4b696f697" args="(vectorsize_t position, ObjectProtocol *pointer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::operator() </td>
          <td>(</td>
          <td class="paramtype">vectorsize_t&nbsp;</td>
          <td class="paramname"> <em>position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td>
          <td class="paramname"> <em>pointer</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assign a member of the vector directly. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>position</em>&nbsp;</td><td>to assign. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to object to assign to vector. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00206_source.html#l00300">300</a> of file <a class="el" href="a00206_source.html">vector.h</a>.</p>

</div>
</div>
<a class="anchor" id="a33194c758e5d3a85a08b8e45f90d09ed"></a><!-- doxytag: member="ucommon::Vector::operator+" ref="a33194c758e5d3a85a08b8e45f90d09ed" args="(Vector &amp;vector)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00172.html">Vector</a>&amp; ucommon::Vector::operator+ </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00172.html">Vector</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>vector</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Concatenate into our existing vector from assignment list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>vector</em>&nbsp;</td><td>to append from. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="a00174.html#a5e722e6be748eee78c0913491495e496">ucommon::vectorof&lt; T &gt;</a>, and <a class="el" href="a00173.html#a14d659be8f147ef9abb5f3cc4592dc25">ucommon::vectorbuf&lt; T, S &gt;</a>.</p>

<p>Definition at line <a class="el" href="a00206_source.html#l00336">336</a> of file <a class="el" href="a00206_source.html">vector.h</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<div class="center"><img src="a00172_a33194c758e5d3a85a08b8e45f90d09ed_cgraph.png" border="0" usemap="#a00172_a33194c758e5d3a85a08b8e45f90d09ed_cgraph_map" alt=""></div>
<map name="a00172_a33194c758e5d3a85a08b8e45f90d09ed_cgraph_map" id="a00172_a33194c758e5d3a85a08b8e45f90d09ed_cgraph">
<area shape="rect" id="node3" href="a00208.html#a0a43af474b84d87df26aa4998bcebb02" title="Add a linked object onto a stack of linked objects." alt="" coords="337,5,479,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ab145d174c3e0eec5fac5d1177d09c151"></a><!-- doxytag: member="ucommon::Vector::operator+=" ref="ab145d174c3e0eec5fac5d1177d09c151" args="(vectorsize_t count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::operator+= </td>
          <td>(</td>
          <td class="paramtype">vectorsize_t&nbsp;</td>
          <td class="paramname"> <em>count</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Drop first specified members from the vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td>of members to drop. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7a6c50d38686380465e2d37795b006e5"></a><!-- doxytag: member="ucommon::Vector::operator+=" ref="a7a6c50d38686380465e2d37795b006e5" args="(Vector &amp;vector)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::operator+= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00172.html">Vector</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>vector</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Append into our existing vector from another vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>vector</em>&nbsp;</td><td>to append from. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00206_source.html#l00329">329</a> of file <a class="el" href="a00206_source.html">vector.h</a>.</p>

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<div class="center"><img src="a00172_a7a6c50d38686380465e2d37795b006e5_cgraph.png" border="0" usemap="#a00172_a7a6c50d38686380465e2d37795b006e5_cgraph_map" alt=""></div>
<map name="a00172_a7a6c50d38686380465e2d37795b006e5_cgraph_map" id="a00172_a7a6c50d38686380465e2d37795b006e5_cgraph">
<area shape="rect" id="node3" href="a00208.html#a0a43af474b84d87df26aa4998bcebb02" title="Add a linked object onto a stack of linked objects." alt="" coords="348,5,489,32"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="a92dbfcfa40220f0a4e6f62b550272b64"></a><!-- doxytag: member="ucommon::Vector::operator&#45;=" ref="a92dbfcfa40220f0a4e6f62b550272b64" args="(vectorsize_t count)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::operator-= </td>
          <td>(</td>
          <td class="paramtype">vectorsize_t&nbsp;</td>
          <td class="paramname"> <em>count</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Drop last specified members from the vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td>of members to drop. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a04f44c8b832ecca2c5832bd1ed6d5884"></a><!-- doxytag: member="ucommon::Vector::operator=" ref="a04f44c8b832ecca2c5832bd1ed6d5884" args="(Vector &amp;vector)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00172.html">Vector</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>vector</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Assign (copy) into our existing vector from another vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>vector</em>&nbsp;</td><td>to assign from. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="a00083.html#ad2dec5a46f44c2953b52466c2b6eb72e">ucommon::MemVector</a>.</p>

<p>Definition at line <a class="el" href="a00206_source.html#l00322">322</a> of file <a class="el" href="a00206_source.html">vector.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae4c14b2123c4b07eab1e7bdfc68728a2"></a><!-- doxytag: member="ucommon::Vector::operator[]" ref="ae4c14b2123c4b07eab1e7bdfc68728a2" args="(int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00095.html">ObjectProtocol</a>* ucommon::Vector::operator[] </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>index</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return a pointer from the vector by array reference. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>of vector member pointer to return. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="a00174.html#aa3de971a9514c01173d5a7e95b6d2473">ucommon::vectorof&lt; T &gt;</a>, and <a class="el" href="a00173.html#ac0626b5bcedf3b8997f6bfaeab24eae1">ucommon::vectorbuf&lt; T, S &gt;</a>.</p>

<p>Definition at line <a class="el" href="a00206_source.html#l00292">292</a> of file <a class="el" href="a00206_source.html">vector.h</a>.</p>

</div>
</div>
<a class="anchor" id="a252b656b9d40aaeb947da5a0040f43a5"></a><!-- doxytag: member="ucommon::Vector::operator^" ref="a252b656b9d40aaeb947da5a0040f43a5" args="(Vector &amp;vector)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00172.html">Vector</a>&amp; ucommon::Vector::operator^ </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00172.html">Vector</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>vector</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Release vector and concat vector from another vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>vector</em>&nbsp;</td><td>to assign from. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a25fb1a3b98585569335693d4efaee854"></a><!-- doxytag: member="ucommon::Vector::operator^=" ref="a25fb1a3b98585569335693d4efaee854" args="(Vector &amp;vector)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::operator^= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00172.html">Vector</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>vector</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Release our existing vector and duplicate from another vector. </p>
<p>This differs from assign in that the allocated size of the vector is reset to the new list. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>vector</em>&nbsp;</td><td>to assign from. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1b2d301ffc6ddba7402e01e4590f5fc0"></a><!-- doxytag: member="ucommon::Vector::resize" ref="a1b2d301ffc6ddba7402e01e4590f5fc0" args="(vectorsize_t size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool ucommon::Vector::resize </td>
          <td>(</td>
          <td class="paramtype">vectorsize_t&nbsp;</td>
          <td class="paramname"> <em>size</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Re-size &amp; re-allocate the total (allocated) size of the vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>size</em>&nbsp;</td><td>to allocate for vector. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a18131ae2537ff1a951b485f6f4e33b07"></a><!-- doxytag: member="ucommon::Vector::rsplit" ref="a18131ae2537ff1a951b485f6f4e33b07" args="(vectorsize_t position)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::rsplit </td>
          <td>(</td>
          <td class="paramtype">vectorsize_t&nbsp;</td>
          <td class="paramname"> <em>position</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Split the vector after a specified offset. </p>
<p>All members before the split are de-referenced and dropped. The member starting at the split point becomes the first member of the vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>position</em>&nbsp;</td><td>to split vector at. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1f2244d669e08ce6a9683bc1e1bc48ea"></a><!-- doxytag: member="ucommon::Vector::set" ref="a1f2244d669e08ce6a9683bc1e1bc48ea" args="(Vector &amp;vector)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00172.html">Vector</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>vector</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set (duplicate) an existing vector into our vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>vector</em>&nbsp;</td><td>to duplicate. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="a00206_source.html#l00278">278</a> of file <a class="el" href="a00206_source.html">vector.h</a>.</p>

</div>
</div>
<a class="anchor" id="aaaee65984e9d84ea1d744ba68a03b77a"></a><!-- doxytag: member="ucommon::Vector::set" ref="aaaee65984e9d84ea1d744ba68a03b77a" args="(ObjectProtocol **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::set </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00095.html">ObjectProtocol</a> **&nbsp;</td>
          <td class="paramname"> <em>list</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the vector to a list of objects terminated by a NULL pointer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>list</em>&nbsp;</td><td>of object pointers. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac7b3e1da4d1dd7f2c91547557bc1828a"></a><!-- doxytag: member="ucommon::Vector::set" ref="ac7b3e1da4d1dd7f2c91547557bc1828a" args="(vectorsize_t position, ObjectProtocol *pointer)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::set </td>
          <td>(</td>
          <td class="paramtype">vectorsize_t&nbsp;</td>
          <td class="paramname"> <em>position</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00095.html">ObjectProtocol</a> *&nbsp;</td>
          <td class="paramname"> <em>pointer</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set a member of the vector to an object. </p>
<p>If an existing member was present and is being replaced, it is de-referenced. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>position</em>&nbsp;</td><td>in vector to place object pointer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pointer</em>&nbsp;</td><td>to place in vector. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a779dd27d7e66b1b34a9a3274f04e2a32"></a><!-- doxytag: member="ucommon::Vector::size" ref="a779dd27d7e66b1b34a9a3274f04e2a32" args="(void **list)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static vectorsize_t ucommon::Vector::size </td>
          <td>(</td>
          <td class="paramtype">void **&nbsp;</td>
          <td class="paramname"> <em>list</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute the effective vector size of a list of object pointers. </p>
<p>The size is found as the NULL pointer in the list. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>size of list. </dd></dl>

</div>
</div>
<a class="anchor" id="a25b647414265232cecc5b58cb4a8f110"></a><!-- doxytag: member="ucommon::Vector::size" ref="a25b647414265232cecc5b58cb4a8f110" args="(void) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vectorsize_t ucommon::Vector::size </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the effective allocation space used by the vector. </p>
<p>This is the number of pointers it can hold before it needs to be resized. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>storage size of vector. </dd></dl>

</div>
</div>
<a class="anchor" id="a0eeae432ea3829996df00f6a83e6ac49"></a><!-- doxytag: member="ucommon::Vector::split" ref="a0eeae432ea3829996df00f6a83e6ac49" args="(vectorsize_t position)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ucommon::Vector::split </td>
          <td>(</td>
          <td class="paramtype">vectorsize_t&nbsp;</td>
          <td class="paramname"> <em>position</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Split the vector at a specified offset. </p>
<p>All members after the split are de-referenced and dropped from the vector. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>position</em>&nbsp;</td><td>to split vector at. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ucommon/<a class="el" href="a00206_source.html">vector.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Thu Jul 14 16:40:12 2011 for ucommon by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>