This commit is contained in:
krahets
2023-06-03 22:18:57 +08:00
parent 8513ad2529
commit da4a01aa93
5 changed files with 94 additions and 94 deletions

View File

@@ -2813,7 +2813,7 @@
<a id="__codelineno-66-78" name="__codelineno-66-78" href="#__codelineno-66-78"></a>
<a id="__codelineno-66-79" name="__codelineno-66-79" href="#__codelineno-66-79"></a><span class="w"> </span><span class="cm">/* 列表扩容 */</span>
<a id="__codelineno-66-80" name="__codelineno-66-80" href="#__codelineno-66-80"></a><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">extendCapacity</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-66-81" name="__codelineno-66-81" href="#__codelineno-66-81"></a><span class="w"> </span><span class="c1">// 新建一个长度为 size 的数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-66-81" name="__codelineno-66-81" href="#__codelineno-66-81"></a><span class="w"> </span><span class="c1">// 新建一个长度为原数组 extendRatio 倍的新数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-66-82" name="__codelineno-66-82" href="#__codelineno-66-82"></a><span class="w"> </span><span class="n">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Arrays</span><span class="p">.</span><span class="na">copyOf</span><span class="p">(</span><span class="n">nums</span><span class="p">,</span><span class="w"> </span><span class="n">capacity</span><span class="p">()</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">extendRatio</span><span class="p">);</span>
<a id="__codelineno-66-83" name="__codelineno-66-83" href="#__codelineno-66-83"></a><span class="w"> </span><span class="c1">// 更新列表容量</span>
<a id="__codelineno-66-84" name="__codelineno-66-84" href="#__codelineno-66-84"></a><span class="w"> </span><span class="n">capacity</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">.</span><span class="na">length</span><span class="p">;</span>
@@ -2920,7 +2920,7 @@
<a id="__codelineno-67-85" name="__codelineno-67-85" href="#__codelineno-67-85"></a>
<a id="__codelineno-67-86" name="__codelineno-67-86" href="#__codelineno-67-86"></a><span class="w"> </span><span class="cm">/* 列表扩容 */</span>
<a id="__codelineno-67-87" name="__codelineno-67-87" href="#__codelineno-67-87"></a><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="n">extendCapacity</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-67-88" name="__codelineno-67-88" href="#__codelineno-67-88"></a><span class="w"> </span><span class="c1">// 新建一个长度为 size * extendRatio 的数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-67-88" name="__codelineno-67-88" href="#__codelineno-67-88"></a><span class="w"> </span><span class="c1">// 新建一个长度为原数组 extendRatio 的新数组</span>
<a id="__codelineno-67-89" name="__codelineno-67-89" href="#__codelineno-67-89"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">newCapacity</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">capacity</span><span class="p">()</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">extendRatio</span><span class="p">;</span>
<a id="__codelineno-67-90" name="__codelineno-67-90" href="#__codelineno-67-90"></a><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="o">*</span><span class="n">tmp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nums</span><span class="p">;</span>
<a id="__codelineno-67-91" name="__codelineno-67-91" href="#__codelineno-67-91"></a><span class="w"> </span><span class="n">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">int</span><span class="p">[</span><span class="n">newCapacity</span><span class="p">];</span>
@@ -3014,7 +3014,7 @@
<a id="__codelineno-68-66" name="__codelineno-68-66" href="#__codelineno-68-66"></a>
<a id="__codelineno-68-67" name="__codelineno-68-67" href="#__codelineno-68-67"></a> <span class="k">def</span> <span class="nf">extend_capacity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<a id="__codelineno-68-68" name="__codelineno-68-68" href="#__codelineno-68-68"></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;列表扩容&quot;&quot;&quot;</span>
<a id="__codelineno-68-69" name="__codelineno-68-69" href="#__codelineno-68-69"></a> <span class="c1"># 新建一个长度为 self.__size 的数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-68-69" name="__codelineno-68-69" href="#__codelineno-68-69"></a> <span class="c1"># 新建一个长度为原数组 __extend_ratio 倍的新数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-68-70" name="__codelineno-68-70" href="#__codelineno-68-70"></a> <span class="bp">self</span><span class="o">.</span><span class="n">__nums</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__nums</span> <span class="o">+</span> <span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">capacity</span><span class="p">()</span> <span class="o">*</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__extend_ratio</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span>
<a id="__codelineno-68-71" name="__codelineno-68-71" href="#__codelineno-68-71"></a> <span class="c1"># 更新列表容量</span>
<a id="__codelineno-68-72" name="__codelineno-68-72" href="#__codelineno-68-72"></a> <span class="bp">self</span><span class="o">.</span><span class="n">__capacity</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__nums</span><span class="p">)</span>
@@ -3117,7 +3117,7 @@
<a id="__codelineno-69-90" name="__codelineno-69-90" href="#__codelineno-69-90"></a>
<a id="__codelineno-69-91" name="__codelineno-69-91" href="#__codelineno-69-91"></a><span class="cm">/* 列表扩容 */</span>
<a id="__codelineno-69-92" name="__codelineno-69-92" href="#__codelineno-69-92"></a><span class="kd">func</span><span class="w"> </span><span class="p">(</span><span class="nx">l</span><span class="w"> </span><span class="o">*</span><span class="nx">myList</span><span class="p">)</span><span class="w"> </span><span class="nx">extendCapacity</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-69-93" name="__codelineno-69-93" href="#__codelineno-69-93"></a><span class="w"> </span><span class="c1">// 新建一个长度为 self.__size 的数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-69-93" name="__codelineno-69-93" href="#__codelineno-69-93"></a><span class="w"> </span><span class="c1">// 新建一个长度为原数组 extendRatio 倍的新数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-69-94" name="__codelineno-69-94" href="#__codelineno-69-94"></a><span class="w"> </span><span class="nx">l</span><span class="p">.</span><span class="nx">nums</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nb">append</span><span class="p">(</span><span class="nx">l</span><span class="p">.</span><span class="nx">nums</span><span class="p">,</span><span class="w"> </span><span class="nb">make</span><span class="p">([]</span><span class="kt">int</span><span class="p">,</span><span class="w"> </span><span class="nx">l</span><span class="p">.</span><span class="nx">numsCapacity</span><span class="o">*</span><span class="p">(</span><span class="nx">l</span><span class="p">.</span><span class="nx">extendRatio</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span><span class="o">...</span><span class="p">)</span>
<a id="__codelineno-69-95" name="__codelineno-69-95" href="#__codelineno-69-95"></a><span class="w"> </span><span class="c1">// 更新列表容量</span>
<a id="__codelineno-69-96" name="__codelineno-69-96" href="#__codelineno-69-96"></a><span class="w"> </span><span class="nx">l</span><span class="p">.</span><span class="nx">numsCapacity</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nb">len</span><span class="p">(</span><span class="nx">l</span><span class="p">.</span><span class="nx">nums</span><span class="p">)</span>
@@ -3209,7 +3209,7 @@
<a id="__codelineno-70-76" name="__codelineno-70-76" href="#__codelineno-70-76"></a>
<a id="__codelineno-70-77" name="__codelineno-70-77" href="#__codelineno-70-77"></a><span class="w"> </span><span class="cm">/* 列表扩容 */</span>
<a id="__codelineno-70-78" name="__codelineno-70-78" href="#__codelineno-70-78"></a><span class="w"> </span><span class="nx">extendCapacity</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-70-79" name="__codelineno-70-79" href="#__codelineno-70-79"></a><span class="w"> </span><span class="c1">// 新建一个长度为 size 的数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-70-79" name="__codelineno-70-79" href="#__codelineno-70-79"></a><span class="w"> </span><span class="c1">// 新建一个长度为原数组 extendRatio 倍的新数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-70-80" name="__codelineno-70-80" href="#__codelineno-70-80"></a><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="err">#</span><span class="nx">nums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="err">#</span><span class="nx">nums</span><span class="p">.</span><span class="nx">concat</span><span class="p">(</span>
<a id="__codelineno-70-81" name="__codelineno-70-81" href="#__codelineno-70-81"></a><span class="w"> </span><span class="ow">new</span><span class="w"> </span><span class="nb">Array</span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">capacity</span><span class="p">()</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="err">#</span><span class="nx">extendRatio</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mf">1</span><span class="p">))</span>
<a id="__codelineno-70-82" name="__codelineno-70-82" href="#__codelineno-70-82"></a><span class="w"> </span><span class="p">);</span>
@@ -3620,7 +3620,7 @@
<a id="__codelineno-74-85" name="__codelineno-74-85" href="#__codelineno-74-85"></a>
<a id="__codelineno-74-86" name="__codelineno-74-86" href="#__codelineno-74-86"></a> <span class="cm">/* 列表扩容 */</span>
<a id="__codelineno-74-87" name="__codelineno-74-87" href="#__codelineno-74-87"></a> <span class="kd">func</span> <span class="nf">extendCapacity</span><span class="p">()</span> <span class="p">{</span>
<a id="__codelineno-74-88" name="__codelineno-74-88" href="#__codelineno-74-88"></a> <span class="c1">// 新建一个长度为 size 的数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-74-88" name="__codelineno-74-88" href="#__codelineno-74-88"></a> <span class="c1">// 新建一个长度为原数组 extendRatio 倍的新数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-74-89" name="__codelineno-74-89" href="#__codelineno-74-89"></a> <span class="n">nums</span> <span class="p">=</span> <span class="n">nums</span> <span class="o">+</span> <span class="nb">Array</span><span class="p">(</span><span class="n">repeating</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="bp">count</span><span class="p">:</span> <span class="n">_capacity</span> <span class="o">*</span> <span class="p">(</span><span class="n">extendRatio</span> <span class="o">-</span> <span class="mi">1</span><span class="p">))</span>
<a id="__codelineno-74-90" name="__codelineno-74-90" href="#__codelineno-74-90"></a> <span class="c1">// 更新列表容量</span>
<a id="__codelineno-74-91" name="__codelineno-74-91" href="#__codelineno-74-91"></a> <span class="n">_capacity</span> <span class="p">=</span> <span class="n">nums</span><span class="p">.</span><span class="bp">count</span>
@@ -3731,7 +3731,7 @@
<a id="__codelineno-75-91" name="__codelineno-75-91" href="#__codelineno-75-91"></a>
<a id="__codelineno-75-92" name="__codelineno-75-92" href="#__codelineno-75-92"></a><span class="w"> </span><span class="c1">// 列表扩容</span>
<a id="__codelineno-75-93" name="__codelineno-75-93" href="#__codelineno-75-93"></a><span class="w"> </span><span class="kr">pub</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="n">extendCapacity</span><span class="p">(</span><span class="n">self</span><span class="o">:</span><span class="w"> </span><span class="o">*</span><span class="n">Self</span><span class="p">)</span><span class="w"> </span><span class="o">!</span><span class="kt">void</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-75-94" name="__codelineno-75-94" href="#__codelineno-75-94"></a><span class="w"> </span><span class="c1">// 新建一个长度为 size * extend_ratio 数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-75-94" name="__codelineno-75-94" href="#__codelineno-75-94"></a><span class="w"> </span><span class="c1">// 新建一个长度为原数组 extendRatio 倍的新数组,并将原数组拷贝到新数组</span>
<a id="__codelineno-75-95" name="__codelineno-75-95" href="#__codelineno-75-95"></a><span class="w"> </span><span class="kr">var</span><span class="w"> </span><span class="n">newCapacity</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">capacity</span><span class="p">()</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">extend_ratio</span><span class="p">;</span>
<a id="__codelineno-75-96" name="__codelineno-75-96" href="#__codelineno-75-96"></a><span class="w"> </span><span class="kr">var</span><span class="w"> </span><span class="n">extend</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="n">self</span><span class="p">.</span><span class="n">mem_allocator</span><span class="p">.</span><span class="n">alloc</span><span class="p">(</span><span class="n">T</span><span class="p">,</span><span class="w"> </span><span class="n">newCapacity</span><span class="p">);</span>
<a id="__codelineno-75-97" name="__codelineno-75-97" href="#__codelineno-75-97"></a><span class="w"> </span><span class="n">std</span><span class="p">.</span><span class="n">mem</span><span class="p">.</span><span class="n">set</span><span class="p">(</span><span class="n">T</span><span class="p">,</span><span class="w"> </span><span class="n">extend</span><span class="p">,</span><span class="w"> </span><span class="nb">@as</span><span class="p">(</span><span class="n">T</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">));</span>
@@ -3826,7 +3826,7 @@
<a id="__codelineno-76-67" name="__codelineno-76-67" href="#__codelineno-76-67"></a>
<a id="__codelineno-76-68" name="__codelineno-76-68" href="#__codelineno-76-68"></a><span class="w"> </span><span class="cm">/* 列表扩容 */</span>
<a id="__codelineno-76-69" name="__codelineno-76-69" href="#__codelineno-76-69"></a><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="n">extendCapacity</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-76-70" name="__codelineno-76-70" href="#__codelineno-76-70"></a><span class="w"> </span><span class="c1">// 新建一个长度为 _capacity * _extendRatio 数组</span>
<a id="__codelineno-76-70" name="__codelineno-76-70" href="#__codelineno-76-70"></a><span class="w"> </span><span class="c1">// 新建一个长度为原数组 _extendRatio 倍的新数组</span>
<a id="__codelineno-76-71" name="__codelineno-76-71" href="#__codelineno-76-71"></a><span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="n">_newNums</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">List</span><span class="p">.</span><span class="n">filled</span><span class="p">(</span><span class="n">_capacity</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">_extendRatio</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">);</span>
<a id="__codelineno-76-72" name="__codelineno-76-72" href="#__codelineno-76-72"></a><span class="w"> </span><span class="c1">// 将原数组拷贝到新数组</span>
<a id="__codelineno-76-73" name="__codelineno-76-73" href="#__codelineno-76-73"></a><span class="w"> </span><span class="n">List</span><span class="p">.</span><span class="n">copyRange</span><span class="p">(</span><span class="n">_newNums</span><span class="p">,</span><span class="w"> </span><span class="m">0</span><span class="p">,</span><span class="w"> </span><span class="n">_nums</span><span class="p">);</span>