Skip to content

Commit eeab86e

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent c50b410 commit eeab86e

File tree

3 files changed

+128
-634
lines changed

3 files changed

+128
-634
lines changed

reference/map/map/insert_or_assign.html

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -200,8 +200,8 @@
200200

201201
<p class="text-right"><small>
202202
最終更新日時(UTC):
203-
<span itemprop="datePublished" content="2025-05-15T10:05:30">
204-
2025年05月15日 10時05分30秒
203+
<span itemprop="datePublished" content="2025-05-22T05:41:30">
204+
2025年05月22日 05時41分30秒
205205
</span>
206206
<br/>
207207
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -233,21 +233,20 @@
233233
<span class="n"><a href="../../utility/pair.html">pair</a></span><span class="o">&lt;</span><span class="n">iterator</span><span class="p">,</span> <span class="kt">bool</span><span class="o">&gt;</span>
234234
<span class="n">insert_or_assign</span><span class="p">(</span><span class="n">key_type</span><span class="o">&amp;&amp;</span> <span class="n">k</span><span class="p">,</span>
235235
<span class="n">M</span><span class="o">&amp;&amp;</span> <span class="n">obj</span><span class="p">);</span> <span class="c1">// (2) C++17</span>
236+
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">K</span><span class="p">,</span> <span class="k">class</span> <span class="nc">M</span><span class="o">&gt;</span>
237+
<span class="n"><a href="../../utility/pair.html">pair</a></span><span class="o">&lt;</span><span class="n">iterator</span><span class="p">,</span> <span class="kt">bool</span><span class="o">&gt;</span>
238+
<span class="n">insert_or_assign</span><span class="p">(</span><span class="n">K</span><span class="o">&amp;&amp;</span> <span class="n">k</span><span class="p">,</span>
239+
<span class="n">M</span><span class="o">&amp;&amp;</span> <span class="n">obj</span><span class="p">);</span> <span class="c1">// (3) C++26</span>
236240
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">M</span><span class="o">&gt;</span>
237241
<span class="n">iterator</span>
238242
<span class="n">insert_or_assign</span><span class="p">(</span><span class="n">const_iterator</span> <span class="n">hint</span><span class="p">,</span>
239243
<span class="k">const</span> <span class="n">key_type</span><span class="o">&amp;</span> <span class="n">k</span><span class="p">,</span>
240-
<span class="n">M</span><span class="o">&amp;&amp;</span> <span class="n">obj</span><span class="p">);</span> <span class="c1">// (3) C++17</span>
244+
<span class="n">M</span><span class="o">&amp;&amp;</span> <span class="n">obj</span><span class="p">);</span> <span class="c1">// (4) C++17</span>
241245
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">M</span><span class="o">&gt;</span>
242246
<span class="n">iterator</span>
243247
<span class="n">insert_or_assign</span><span class="p">(</span><span class="n">const_iterator</span> <span class="n">hint</span><span class="p">,</span>
244248
<span class="n">key_type</span><span class="o">&amp;&amp;</span> <span class="n">k</span><span class="p">,</span>
245-
<span class="n">M</span><span class="o">&amp;&amp;</span> <span class="n">obj</span><span class="p">);</span> <span class="c1">// (4) C++17</span>
246-
247-
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">K</span><span class="p">,</span> <span class="k">class</span> <span class="nc">M</span><span class="o">&gt;</span>
248-
<span class="n"><a href="../../utility/pair.html">pair</a></span><span class="o">&lt;</span><span class="n">iterator</span><span class="p">,</span> <span class="kt">bool</span><span class="o">&gt;</span>
249-
<span class="n">insert_or_assign</span><span class="p">(</span><span class="n">K</span><span class="o">&amp;&amp;</span> <span class="n">k</span><span class="p">,</span>
250-
<span class="n">M</span><span class="o">&amp;&amp;</span> <span class="n">obj</span><span class="p">);</span> <span class="c1">// (5) C++26</span>
249+
<span class="n">M</span><span class="o">&amp;&amp;</span> <span class="n">obj</span><span class="p">);</span> <span class="c1">// (5) C++17</span>
251250
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">K</span><span class="p">,</span> <span class="k">class</span> <span class="nc">M</span><span class="o">&gt;</span>
252251
<span class="n">iterator</span>
253252
<span class="n">insert_or_assign</span><span class="p">(</span><span class="n">const_iterator</span> <span class="n">hint</span><span class="p">,</span>
@@ -261,47 +260,47 @@ <h2>概要</h2>
261260
<ul>
262261
<li>(1) : <code>key_type</code>型のキーをとって挿入もしくは代入する</li>
263262
<li>(2) : <code>key_type</code>型の一時オブジェクトのキーをとって挿入もしくは代入する</li>
264-
<li>(3) : 挿入位置のヒントをともない、<code>key_type</code>型のキーをとって挿入もしくは代入する</li>
265-
<li>(4) : 挿入位置のヒントをともない、<code>key_type</code>型の一時オブジェクトのキーをとって挿入もしくは代入する</li>
266-
<li>(5) : <code>key_type</code>と比較可能な<code>K</code>型のキーをとって挿入もしくは代入する</li>
263+
<li>(3) : <code>key_type</code>と比較可能な<code>K</code>型のキーをとって挿入もしくは代入する</li>
264+
<li>(4) : 挿入位置のヒントをともない、<code>key_type</code>型のキーをとって挿入もしくは代入する</li>
265+
<li>(5) : 挿入位置のヒントをともない、<code>key_type</code>型の一時オブジェクトのキーをとって挿入もしくは代入する</li>
267266
<li>(6) : 挿入位置のヒントをともない、<code>key_type</code>と比較可能な<code>K</code>型のキーをとって挿入もしくは代入する</li>
268267
</ul>
269268
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Constraints。関数であればオーバーロード解決に参加するための条件、それ以外であれば受け付ける型の条件">テンプレートパラメータ制約</a></h2>
270269
<ul>
271-
<li>(5), (6) : <code>key_compare::is_transparent</code> が妥当な式であること</li>
270+
<li>(3), (6) : <code>key_compare::is_transparent</code> が妥当な式であること</li>
272271
</ul>
273272
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Mandates。満たさなければプログラムが不適格となる要件。この要件は、オーバーロード解決によって選択された関数内での`static_assert`の定数条件式や、関数に対するdelete宣言などで表現できる">適格要件</a></h2>
274273
<ul>
275-
<li>(1)、(3)、(5)、(6) : <code><a href="../../type_traits/is_assignable.html">is_assignable_v</a>&lt;mapped_type&amp;, M&amp;&amp;&gt;</code><code>true</code> であること。<code>value_type</code> は、<code>k</code>, <code><a href="../../utility/forward.html">forward</a>&lt;M&gt;(obj)</code> から <code>map</code> に直接構築可能であること</li>
276-
<li>(2)、(4) : <code><a href="../../type_traits/is_assignable.html">is_assignable_v</a>&lt;mapped_type&amp;, M&amp;&amp;&gt;</code><code>true</code> であること。<code>value_type</code> は、<code><a href="../../utility/move.html">move</a>(k)</code>, <code><a href="../../utility/forward.html">forward</a>&lt;M&gt;(obj)</code> から <code>map</code> に直接構築可能であること</li>
274+
<li>(1)、(3)、(4)、(6) : <code><a href="../../type_traits/is_assignable.html">is_assignable_v</a>&lt;mapped_type&amp;, M&amp;&amp;&gt;</code><code>true</code> であること。<code>value_type</code> は、<code>k</code>, <code><a href="../../utility/forward.html">forward</a>&lt;M&gt;(obj)</code> から <code>map</code> に直接構築可能であること</li>
275+
<li>(2)、(5) : <code><a href="../../type_traits/is_assignable.html">is_assignable_v</a>&lt;mapped_type&amp;, M&amp;&amp;&gt;</code><code>true</code> であること。<code>value_type</code> は、<code><a href="../../utility/move.html">move</a>(k)</code>, <code><a href="../../utility/forward.html">forward</a>&lt;M&gt;(obj)</code> から <code>map</code> に直接構築可能であること</li>
277276
</ul>
278277
<p>なお、規格に記載はないが、<code>hint</code><code><a href="emplace_hint.html">emplace_hint</a></code> と同様、コンテナの有効な読み取り専用イテレータである必要があるものと思われる。</p>
279278
<h2>効果</h2>
280279
<ul>
281-
<li>(1)、(3)、(5)、(6) : <code>map</code><code>k</code> と同値のキーを持つ要素 <code>e</code> を持っている場合、<code>e.second</code><code><a href="../../utility/forward.html">forward</a>&lt;M&gt;(obj)</code> を代入する。そうでなければ、<code>k</code>, <code><a href="../../utility/forward.html">forward</a>&lt;M&gt;(obj)</code> から構築した <code>value_type</code> 型のオブジェクトを挿入する。</li>
282-
<li>(2)、(4) : <code>map</code><code>k</code> と同値のキーを持つ要素 <code>e</code> を持っている場合、<code>e.second</code><code><a href="../../utility/forward.html">forward</a>&lt;M&gt;(obj)</code> を代入する。そうでなければ、<code><a href="../../utility/move.html">move</a>(k)</code>, <code><a href="../../utility/forward.html">forward</a>&lt;M&gt;(obj)</code> から構築した <code>value_type</code> 型のオブジェクトを挿入する。</li>
280+
<li>(1)、(3)、(4)、(6) : <code>map</code><code>k</code> と同値のキーを持つ要素 <code>e</code> を持っている場合、<code>e.second</code><code><a href="../../utility/forward.html">forward</a>&lt;M&gt;(obj)</code> を代入する。そうでなければ、<code>k</code>, <code><a href="../../utility/forward.html">forward</a>&lt;M&gt;(obj)</code> から構築した <code>value_type</code> 型のオブジェクトを挿入する。</li>
281+
<li>(2)、(5) : <code>map</code><code>k</code> と同値のキーを持つ要素 <code>e</code> を持っている場合、<code>e.second</code><code><a href="../../utility/forward.html">forward</a>&lt;M&gt;(obj)</code> を代入する。そうでなければ、<code><a href="../../utility/move.html">move</a>(k)</code>, <code><a href="../../utility/forward.html">forward</a>&lt;M&gt;(obj)</code> から構築した <code>value_type</code> 型のオブジェクトを挿入する。</li>
283282
</ul>
284283
<h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価結果となるオブジェクト・値">戻り値</a></h2>
285284
<ul>
286-
<li>(1)、(2)、(5) : イテレータと <code>bool</code> 値の <code><a href="../../utility/pair.html">pair</a></code> を返す。<ul>
285+
<li>(1)、(2)、(3) : イテレータと <code>bool</code> 値の <code><a href="../../utility/pair.html">pair</a></code> を返す。<ul>
287286
<li>挿入された場合には、<code>first</code> に挿入された要素へのイテレータ、<code>second</code><code>true</code> が設定される。</li>
288287
<li>代入された場合には、<code>first</code> に代入された要素へのイテレータ、<code>second</code><code>false</code> が設定される。</li>
289288
</ul>
290289
</li>
291-
<li>(3)、(4)、(6) :<ul>
290+
<li>(4)、(5)、(6) :<ul>
292291
<li>挿入された場合には、挿入された要素へのイテレータを返す。</li>
293292
<li>代入された場合には、代入された要素へのイテレータを返す。</li>
294293
</ul>
295294
</li>
296295
</ul>
297296
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Complexity。関数が使うアルゴリズムの空間計算量・時間計算量">計算量</a></h2>
298297
<ul>
299-
<li>(1)、(2)、(5) : <code><a href="emplace.html">emplace</a></code> と同じ。</li>
300-
<li>(3)、(4)、(6) : <code><a href="emplace_hint.html">emplace_hint</a></code> と同じ。</li>
298+
<li>(1)、(2)、(3) : <code><a href="emplace.html">emplace</a></code> と同じ。</li>
299+
<li>(4)、(5)、(6) : <code><a href="emplace_hint.html">emplace_hint</a></code> と同じ。</li>
301300
</ul>
302301
<h2>備考</h2>
303302
<ul>
304-
<li>(5), (6) :<ul>
303+
<li>(3), (6) :<ul>
305304
<li><code>is_transparent</code>は、標準ライブラリの<code><a href="../../functional/less.html">std::less</a></code><code><a href="../../functional/greater.html">std::greater</a></code>といった関数オブジェクトの、<code>void</code>に対する特殊化で定義される。それ以外のテンプレートパラメータで<code>is_transparent</code>が定義されないのは、互換性のためである。</li>
306305
<li>これらの<a class="cpprefjp-defined-word" data-desc="同名の関数を異なる引数・テンプレート・制約などで複数定義すること。または同名の関数の集合">オーバーロード</a>は、<code>map&lt;string, int&gt;</code>のようなコンテナに対し、検索操作で文字列リテラルを渡した際に、キー型の一時オブジェクトが生成されるコストを減らすためにある。</li>
307306
</ul>

0 commit comments

Comments
 (0)