|
200 | 200 |
|
201 | 201 | <p class="text-right"><small> |
202 | 202 | 最終更新日時(UTC): |
203 | | - <span itemprop="datePublished" content="2024-06-11T13:45:38"> |
204 | | - 2024年06月11日 13時45分38秒 |
| 203 | + <span itemprop="datePublished" content="2025-05-29T16:59:02"> |
| 204 | + 2025年05月29日 16時59分02秒 |
205 | 205 | </span> |
206 | 206 | <br/> |
207 | 207 | <span itemprop="author" itemscope itemtype="http://schema.org/Person"> |
208 | | - <span itemprop="name">Akira Takahashi</span> |
| 208 | + <span itemprop="name">koki watanabe</span> |
209 | 209 | </span> |
210 | 210 | が更新 |
211 | 211 | </small></p> |
@@ -242,6 +242,24 @@ <h2><a class="cpprefjp-defined-word" data-desc="問題が発生したときに |
242 | 242 | <p>投げない。</p> |
243 | 243 | <h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Complexity。関数が使うアルゴリズムの空間計算量・時間計算量">計算量</a></h2> |
244 | 244 | <p>本関数呼び出し前のコンテナの要素数(<code><a href="size.html">size</a>()</code>)に比例</p> |
| 245 | +<h3><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Complexity。関数が使うアルゴリズムの空間計算量・時間計算量">計算量</a>に関する備考</h3> |
| 246 | +<p>多くの実装(GCC libstdc++, LLVM libc++ など)は</p> |
| 247 | +<ol> |
| 248 | +<li>全ての要素を走査して各要素を破棄</li> |
| 249 | +<li>全てのバケットを走査して各バケットの状態をリセット</li> |
| 250 | +</ol> |
| 251 | +<p>という手順を取るため、実際の実行時間はバケット数 <code><a href="bucket_count.html">bucket_count</a>()</code> について線形となる (<code>size() <= bucket_count() * <a href="max_load_factor.html">max_load_factor()</a></code> = O(<code>bucket_count()</code>) であることに注意)。 |
| 252 | +規格の<a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Complexity。関数が使うアルゴリズムの空間計算量・時間計算量">計算量</a>の要件は要素数 <code>size()</code> に線形となっているが、規格がコンテナに対して定義する<a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Complexity。関数が使うアルゴリズムの空間計算量・時間計算量">計算量</a>は「コンテナに格納している要素に対する操作の数の<a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Complexity。関数が使うアルゴリズムの空間計算量・時間計算量">計算量</a>」であるためバケットの走査などを考慮していない。</p> |
| 253 | +<h2>備考</h2> |
| 254 | +<ul> |
| 255 | +<li><code>clear()</code> がバケット数(<code><a href="bucket_count.html">bucket_count</a>()</code>)を縮小することを規格は要求していない。 |
| 256 | +実装によっては <code>clear()</code> 後もバケット配列が維持され、動的メモリが残る場合がある。</li> |
| 257 | +<li>バケット数を初期状態まで縮小させたいときには <code>clear()</code> の代わりに以下のように操作する |
| 258 | + <br /> |
| 259 | +<div class="codehilite"><pre><span></span><code><span class="n">um</span> <span class="o">=</span> <span class="n"><a href="../unordered_map.html">std::unordered_map</a></span><span class="o"><</span><span class="n"><a href="../../string/basic_string.html">std::string</a></span><span class="p">,</span> <span class="kt">int</span><span class="o">></span><span class="p">();</span> |
| 260 | +</code></pre></div> |
| 261 | +</li> |
| 262 | +</ul> |
245 | 263 | <h2>例</h2> |
246 | 264 | <p><div class="yata" id="eaf9c6214c3f6727e0cc64f4acc42aeb7779f825"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../../iostream.html"><iostream></a></span><span class="cp"></span> |
247 | 265 | <span class="cp">#include</span> <span class="cpf"><a href="../../unordered_map.html"><unordered_map></a></span><span class="cp"></span> |
|
0 commit comments