Skip to content

Commit 2814e4d

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 6797bee commit 2814e4d

File tree

3 files changed

+103
-2854
lines changed

3 files changed

+103
-2854
lines changed

reference/flat_map/flat_multimap.html

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
<meta property="og:url" content="https://cpprefjp.github.io/reference/flat_map/flat_multimap.html" />
2929
<meta property="og:site_name" content="cpprefjp - C++日本語リファレンス" />
3030
<meta property="og:type" content="article" />
31-
<meta property="og:description" content="" />
31+
<meta property="og:description" content="`flat_multimap` は同一キーの要素を複数格納できる連想コンテナの一種であり、キーとそれに対応する値を格納する。" />
3232
<meta name="twitter:card" content="summary" />
3333
<meta name="twitter:title" content="flat_multimap - cpprefjp C++日本語リファレンス" />
3434
<meta name="twitter:url" content="https://cpprefjp.github.io/reference/flat_map/flat_multimap.html" />
35-
<meta name="twitter:description" content="" />
35+
<meta name="twitter:description" content="`flat_multimap` は同一キーの要素を複数格納できる連想コンテナの一種であり、キーとそれに対応する値を格納する。" />
3636

3737

3838
<link rel="alternate" type="application/atom+xml" title="Atom" href="https://cpprefjp.github.io/rss.xml" />
@@ -188,12 +188,12 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2025-02-11T00:56:25">
192-
2025年02月11日 00時56分25秒
191+
<span itemprop="datePublished" content="2025-05-14T06:56:34">
192+
2025年05月14日 06時56分34秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
196-
<span itemprop="name">suomesta</span>
196+
<span itemprop="name">Akira Takahashi</span>
197197
</span>
198198
が更新
199199
</small></p>
@@ -224,6 +224,39 @@
224224
</code></pre></div>
225225
</p>
226226
<h2>概要</h2>
227+
<p><code>flat_multimap</code> は同一キーの要素を複数格納できる連想コンテナの一種であり、キーとそれに対応する値を格納する。</p>
228+
<p><code>std::flat_multimap</code>は、ノードベースで実装される<code><a href="../map/multimap.html">std::multimap</a></code>、ハッシュテーブルで実装される<code><a href="../unordered_map/unordered_multimap.html">std::unordered_multimap</a></code>とは異なり、ソート済み配列と二分探索の組み合わせで実装される。これはほかの実装と比較して、メモリ使用量と列挙速度において優位であり、一方で挿入速度と検索速度はほかの実装に劣る。</p>
229+
<p>また、このクラスは分類としては<code><a href="../queue/queue.html">std::queue</a></code><code><a href="../stack/stack.html">std::skack</a></code>と同様のコンテナアダプタに分類され、キーの配列と値の配列の2つを内部で持ち、それを<code><a href="../ranges/zip_view.html">std::ranges::zip_view</a></code>で綴じあわせて扱う実装となっている。</p>
230+
<p>このコンテナクラスは、ランダムアクセスイテレータをサポートする。</p>
231+
<h3>ほかの連想コンテナとの要件の違い</h3>
232+
<p>このクラスは要件として、コンテナクラスと、逆順コンテナクラスであることは満たすが、連想コンテナの要件としては以下を満たさない:</p>
233+
<ul>
234+
<li>node handleに関する要件</li>
235+
<li>イテレータ無効化に関する要件</li>
236+
<li>単一要素の挿入と削除に線形時間かかる (挿入位置のイテレータを指定したとしても)</li>
237+
</ul>
238+
<p>また、このコンテナはメモリアロケータを指定できない設計にもなっている。</p>
239+
<p><code>value_type</code>は、<code><a href="../map/multimap.html">std::multimap</a></code>では<code><a href="../utility/pair.html">std::pair</a>&lt;const Key, T&gt;</code>だが、このクラスは<code><a href="../utility/pair.html">std::pair</a>&lt;Key, T&gt;</code>である (<code>const</code>がつかない)。</p>
240+
<p>以下の不変条件をもち、メンバ関数のいずれかが<a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>によって終了した場合には不変条件の状態に復元される (ただし、その復元操作によってコンテナが空になる可能性がある):</p>
241+
<ul>
242+
<li>キーの配列と値の配列が、同じ要素数をもつ</li>
243+
<li>キーの配列が、指定された比較関数オブジェクトを尊重してソートを行う</li>
244+
<li>値の配列内のオフセット<code>off</code>の値は、キー配列内のオフセット<code>off</code>のキーに関連付けられた値である</li>
245+
</ul>
246+
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Constraints。関数であればオーバーロード解決に参加するための条件、それ以外であれば受け付ける型の条件">テンプレートパラメータ制約</a></h2>
247+
<ul>
248+
<li><code>KeyContainer</code><code>MappedContainer</code>に指定するコンテナ型は、<ul>
249+
<li>シーケンスコンテナの要件を満たし、</li>
250+
<li>ランダムアクセスイテレータをもち、</li>
251+
<li><a class="cpprefjp-defined-word" data-desc="問題が発生したときに、現在実行位置を過去に通過・記録した位置に戻し、文脈情報を添えて紐づけられた処理(例外ハンドラー)を呼び出す仕組み。またはその事態">例外</a>を送出しないメンバ関数<code>size()</code><code>max_size()</code>をもつこと</li>
252+
</ul>
253+
</li>
254+
</ul>
255+
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Mandates。満たさなければプログラムが不適格となる要件。この要件は、オーバーロード解決によって選択された関数内での`static_assert`の定数条件式や、関数に対するdelete宣言などで表現できる">適格要件</a></h2>
256+
<ul>
257+
<li><code>Key</code><code>KeyContainer::value_type</code>と同じ型であること</li>
258+
<li><code>T</code><code>MappedContainer::value_type</code>と同じ型であること</li>
259+
</ul>
227260
<h2>メンバ関数</h2>
228261
<h3>構築・破棄</h3>
229262
<table border="1" bordercolor="#888" style="border-collapse:collapse">

0 commit comments

Comments
 (0)