Files
dl/document/html/dl__object__pool_8h_source.html
2026-09-16 14:07:40 +08:00

231 lines
25 KiB
HTML
Vendored
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>dl: D:/dl/dl/base/dl_object_pool.h 源文件</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">dl
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.13.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','搜索',false);
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_17297ffb27ce571941f5fb5008f01a1f.html">dl</a></li><li class="navelem"><a class="el" href="dir_78beb56c8eba7ccc6c64d7863d88a69e.html">base</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">dl_object_pool.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dl__object__pool_8h.html">浏览该文件的文档.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;stack&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacedl.html">dl</a></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span>{</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00022" data-start="{" data-end="};">
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="classdl_1_1_object_pool.html"> 22</a></span><span class="keyword">class </span><a class="code hl_class" href="classdl_1_1_object_pool.html">ObjectPool</a> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span>{</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="comment">// 申请一个空闲元素(O(1)</span></div>
<div class="foldopen" id="foldopen00026" data-start="{" data-end="}">
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="classdl_1_1_object_pool.html#ae7d44a4f3f62b2fe836ebb0b1ba72a7b"> 26</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_object_pool.html#ae7d44a4f3f62b2fe836ebb0b1ba72a7b">GetFree</a>() </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> {</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// 1. 优先用空闲列表</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">if</span> (!_freeIndex.empty())</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordtype">size_t</span> idx = _freeIndex.top();</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> _freeIndex.pop();</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> idx;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> }</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// 2. 无空闲 → 扩容(最多触发一次)</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> _data.emplace_back();</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">return</span> _data.size() - 1;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> }</div>
</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// 释放元素(O(1)</span></div>
<div class="foldopen" id="foldopen00042" data-start="{" data-end="}">
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="classdl_1_1_object_pool.html#ada0e7c19b78db2be8ee6e5f38af7d4af"> 42</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_object_pool.html#ada0e7c19b78db2be8ee6e5f38af7d4af">Release</a>(<span class="keywordtype">size_t</span> index) </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> (index &lt; _data.size())</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> _freeIndex.push(index);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> }</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> }</div>
</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// 访问元素</span></div>
<div class="foldopen" id="foldopen00051" data-start="{" data-end="}">
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="classdl_1_1_object_pool.html#a07bdaffc3aed4b5e3a491f5a0f51f47e"> 51</a></span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&amp; <a class="code hl_function" href="classdl_1_1_object_pool.html#a07bdaffc3aed4b5e3a491f5a0f51f47e">operator[]</a>(<span class="keywordtype">size_t</span> index)</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">return</span> _data[index];</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// 获取全部数据</span></div>
<div class="foldopen" id="foldopen00057" data-start="{" data-end="}">
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="classdl_1_1_object_pool.html#a7c6993d97a92b696f9bab39c1a6a1900"> 57</a></span> std::vector&lt;T&gt;&amp; <a class="code hl_function" href="classdl_1_1_object_pool.html#a7c6993d97a92b696f9bab39c1a6a1900">data</a>() </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> {</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> _data;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</div>
</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> std::vector&lt;T&gt; _data; <span class="comment">// 真实资源</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> std::stack&lt;size_t&gt; _freeIndex; <span class="comment">// 空闲索引栈</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span>};</div>
</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00070" data-start="{" data-end="};">
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classdl_1_1_object_pool_ex.html"> 70</a></span><span class="keyword">class </span><a class="code hl_function" href="classdl_1_1_object_pool_ex.html#a8970e4b76b7a007c27493d7faa140727">ObjectPoolEx</a></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span>{</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00073" data-start="{" data-end="}">
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="classdl_1_1_object_pool_ex.html#a8970e4b76b7a007c27493d7faa140727"> 73</a></span> <a class="code hl_function" href="classdl_1_1_object_pool_ex.html#a8970e4b76b7a007c27493d7faa140727">ObjectPoolEx</a>()</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> {</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="comment">/*slots.resize(capacity);</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment"> freeList.reserve(capacity);</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment"> liveList.reserve(capacity);</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment"> for (uint32_t i = 0; i &lt; capacity; ++i)</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment"> {</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="comment"> freeList.push_back(capacity - 1 - i);</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="comment"> slots[i].isActive = false;</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="comment"> }*/</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> </div>
<div class="foldopen" id="foldopen00085" data-start="{" data-end="}">
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="classdl_1_1_object_pool_ex.html#a58f881c621d36faa0c8ab46654fe876a"> 85</a></span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>* <a class="code hl_function" href="classdl_1_1_object_pool_ex.html#a58f881c621d36faa0c8ab46654fe876a">acquire</a>() </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> {</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">if</span> (freeList.empty())</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> _extend();</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> uint32_t idx = freeList.back();</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> freeList.pop_back();</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> slots[idx].isActive = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> slots[idx].liveIndex = liveList.size();</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> liveList.push_back(idx);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">return</span> &amp;slots[idx].data;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> }</div>
</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="foldopen" id="foldopen00100" data-start="{" data-end="}">
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"><a class="line" href="classdl_1_1_object_pool_ex.html#a0cb853fea0d63db47fb191598a140682"> 100</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_object_pool_ex.html#a0cb853fea0d63db47fb191598a140682">release</a>(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>* ptr) {</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> uint32_t idx = <span class="keyword">static_cast&lt;</span>uint32_t<span class="keyword">&gt;</span>(ptr - &amp;slots[0].data);</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">if</span> (!slots[idx].isActive) <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// O(1) 从 liveList 移除</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> uint32_t lastIdx = liveList.back();</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> uint32_t removePos = slots[idx].liveIndex;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> liveList[removePos] = lastIdx;</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> slots[lastIdx].liveIndex = removePos;</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> liveList.pop_back();</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> </div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> slots[idx].isActive = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> freeList.push_back(idx);</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> }</div>
</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="foldopen" id="foldopen00116" data-start="{" data-end="}">
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="classdl_1_1_object_pool_ex.html#a789945d7e23d52edd5fa2431355495ed"> 116</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_object_pool_ex.html#a789945d7e23d52edd5fa2431355495ed">aliveCount</a>()<span class="keyword"> const </span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="keyword"> </span>{ </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">return</span> liveList.size();</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> }</div>
</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">struct </span>Slot</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> {</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a> data;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> uint32_t liveIndex;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">bool</span> isActive;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> };</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> std::vector&lt;Slot&gt; slots;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> std::vector&lt;uint32_t&gt; freeList;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> std::vector&lt;uint32_t&gt; liveList;</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordtype">void</span> _extend()</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> {</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> Slot slot;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> slot.isActive = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> slots.push_back(slot);</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> freeList.push_back(slots.size() - 1);</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span>};</div>
</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span>}</div>
<div class="ttc" id="aclassdl_1_1_object_pool_ex_html_a0cb853fea0d63db47fb191598a140682"><div class="ttname"><a href="classdl_1_1_object_pool_ex.html#a0cb853fea0d63db47fb191598a140682">dl::ObjectPoolEx::release</a></div><div class="ttdeci">void release(T *ptr)</div><div class="ttdef"><b>定义</b> <a href="#l00100">dl_object_pool.h:100</a></div></div>
<div class="ttc" id="aclassdl_1_1_object_pool_ex_html_a58f881c621d36faa0c8ab46654fe876a"><div class="ttname"><a href="classdl_1_1_object_pool_ex.html#a58f881c621d36faa0c8ab46654fe876a">dl::ObjectPoolEx::acquire</a></div><div class="ttdeci">T * acquire()</div><div class="ttdef"><b>定义</b> <a href="#l00085">dl_object_pool.h:85</a></div></div>
<div class="ttc" id="aclassdl_1_1_object_pool_ex_html_a789945d7e23d52edd5fa2431355495ed"><div class="ttname"><a href="classdl_1_1_object_pool_ex.html#a789945d7e23d52edd5fa2431355495ed">dl::ObjectPoolEx::aliveCount</a></div><div class="ttdeci">size_t aliveCount() const</div><div class="ttdef"><b>定义</b> <a href="#l00116">dl_object_pool.h:116</a></div></div>
<div class="ttc" id="aclassdl_1_1_object_pool_ex_html_a8970e4b76b7a007c27493d7faa140727"><div class="ttname"><a href="classdl_1_1_object_pool_ex.html#a8970e4b76b7a007c27493d7faa140727">dl::ObjectPoolEx::ObjectPoolEx</a></div><div class="ttdeci">ObjectPoolEx()</div><div class="ttdef"><b>定义</b> <a href="#l00073">dl_object_pool.h:73</a></div></div>
<div class="ttc" id="aclassdl_1_1_object_pool_html"><div class="ttname"><a href="classdl_1_1_object_pool.html">dl::ObjectPool</a></div><div class="ttdoc">对象池</div><div class="ttdef"><b>定义</b> <a href="#l00022">dl_object_pool.h:23</a></div></div>
<div class="ttc" id="aclassdl_1_1_object_pool_html_a07bdaffc3aed4b5e3a491f5a0f51f47e"><div class="ttname"><a href="classdl_1_1_object_pool.html#a07bdaffc3aed4b5e3a491f5a0f51f47e">dl::ObjectPool::operator[]</a></div><div class="ttdeci">T &amp; operator[](size_t index)</div><div class="ttdef"><b>定义</b> <a href="#l00051">dl_object_pool.h:51</a></div></div>
<div class="ttc" id="aclassdl_1_1_object_pool_html_a7c6993d97a92b696f9bab39c1a6a1900"><div class="ttname"><a href="classdl_1_1_object_pool.html#a7c6993d97a92b696f9bab39c1a6a1900">dl::ObjectPool::data</a></div><div class="ttdeci">std::vector&lt; T &gt; &amp; data()</div><div class="ttdef"><b>定义</b> <a href="#l00057">dl_object_pool.h:57</a></div></div>
<div class="ttc" id="aclassdl_1_1_object_pool_html_ada0e7c19b78db2be8ee6e5f38af7d4af"><div class="ttname"><a href="classdl_1_1_object_pool.html#ada0e7c19b78db2be8ee6e5f38af7d4af">dl::ObjectPool::Release</a></div><div class="ttdeci">void Release(size_t index)</div><div class="ttdef"><b>定义</b> <a href="#l00042">dl_object_pool.h:42</a></div></div>
<div class="ttc" id="aclassdl_1_1_object_pool_html_ae7d44a4f3f62b2fe836ebb0b1ba72a7b"><div class="ttname"><a href="classdl_1_1_object_pool.html#ae7d44a4f3f62b2fe836ebb0b1ba72a7b">dl::ObjectPool::GetFree</a></div><div class="ttdeci">size_t GetFree()</div><div class="ttdef"><b>定义</b> <a href="#l00026">dl_object_pool.h:26</a></div></div>
<div class="ttc" id="anamespacedl_html"><div class="ttname"><a href="namespacedl.html">dl</a></div><div class="ttdef"><b>定义</b> <a href="dl__array_8h_source.html#l00021">dl_array.h:22</a></div></div>
<div class="ttc" id="anamespacedl_html_a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3"><div class="ttname"><a href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">dl::KeyCode::T</a></div><div class="ttdeci">@ T</div><div class="ttdef"><b>定义</b> <a href="dl__input_8h_source.html#l00121">dl_input.h:121</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1
</small></address>
</div><!-- doc-content -->
</body>
</html>