200
200
201
201
< p class ="text-right "> < small >
202
202
最終更新日時(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秒
205
205
</ span >
206
206
< br />
207
207
< span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
233
233
< span class ="n "> < a href ="../../utility/pair.html "> pair</ a > </ span > < span class ="o "> <</ span > < span class ="n "> iterator</ span > < span class ="p "> ,</ span > < span class ="kt "> bool</ span > < span class ="o "> ></ span >
234
234
< span class ="n "> insert_or_assign</ span > < span class ="p "> (</ span > < span class ="n "> key_type</ span > < span class ="o "> &&</ span > < span class ="n "> k</ span > < span class ="p "> ,</ span >
235
235
< span class ="n "> M</ span > < span class ="o "> &&</ 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 "> <</ 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 "> ></ span >
237
+ < span class ="n "> < a href ="../../utility/pair.html "> pair</ a > </ span > < span class ="o "> <</ span > < span class ="n "> iterator</ span > < span class ="p "> ,</ span > < span class ="kt "> bool</ span > < span class ="o "> ></ span >
238
+ < span class ="n "> insert_or_assign</ span > < span class ="p "> (</ span > < span class ="n "> K</ span > < span class ="o "> &&</ span > < span class ="n "> k</ span > < span class ="p "> ,</ span >
239
+ < span class ="n "> M</ span > < span class ="o "> &&</ span > < span class ="n "> obj</ span > < span class ="p "> );</ span > < span class ="c1 "> // (3) C++26</ span >
236
240
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> M</ span > < span class ="o "> ></ span >
237
241
< span class ="n "> iterator</ span >
238
242
< 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 >
239
243
< span class ="k "> const</ span > < span class ="n "> key_type</ span > < span class ="o "> &</ span > < span class ="n "> k</ span > < span class ="p "> ,</ span >
240
- < span class ="n "> M</ span > < span class ="o "> &&</ 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 "> &&</ span > < span class ="n "> obj</ span > < span class ="p "> );</ span > < span class ="c1 "> // (4 ) C++17</ span >
241
245
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> M</ span > < span class ="o "> ></ span >
242
246
< span class ="n "> iterator</ span >
243
247
< 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 >
244
248
< span class ="n "> key_type</ span > < span class ="o "> &&</ span > < span class ="n "> k</ span > < span class ="p "> ,</ span >
245
- < span class ="n "> M</ span > < span class ="o "> &&</ 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 "> <</ 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 "> ></ span >
248
- < span class ="n "> < a href ="../../utility/pair.html "> pair</ a > </ span > < span class ="o "> <</ span > < span class ="n "> iterator</ span > < span class ="p "> ,</ span > < span class ="kt "> bool</ span > < span class ="o "> ></ span >
249
- < span class ="n "> insert_or_assign</ span > < span class ="p "> (</ span > < span class ="n "> K</ span > < span class ="o "> &&</ span > < span class ="n "> k</ span > < span class ="p "> ,</ span >
250
- < span class ="n "> M</ span > < span class ="o "> &&</ 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 "> &&</ span > < span class ="n "> obj</ span > < span class ="p "> );</ span > < span class ="c1 "> // (5) C++17</ span >
251
250
< span class ="k "> template</ span > < span class ="o "> <</ 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 "> ></ span >
252
251
< span class ="n "> iterator</ span >
253
252
< 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>
261
260
< ul >
262
261
< li > (1) : < code > key_type</ code > 型のキーをとって挿入もしくは代入する</ li >
263
262
< 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 >
267
266
< li > (6) : 挿入位置のヒントをともない、< code > key_type</ code > と比較可能な< code > K</ code > 型のキーをとって挿入もしくは代入する</ li >
268
267
</ ul >
269
268
< h2 > < a class ="cpprefjp-defined-word " data-desc ="関数等の意味論を構成する要素の1つ。Constraints。関数であればオーバーロード解決に参加するための条件、それ以外であれば受け付ける型の条件 "> テンプレートパラメータ制約</ a > </ h2 >
270
269
< ul >
271
- < li > (5 ), (6) : < code > key_compare::is_transparent</ code > が妥当な式であること</ li >
270
+ < li > (3 ), (6) : < code > key_compare::is_transparent</ code > が妥当な式であること</ li >
272
271
</ ul >
273
272
< h2 > < a class ="cpprefjp-defined-word " data-desc ="関数等の意味論を構成する要素の1つ。Mandates。満たさなければプログラムが不適格となる要件。この要件は、オーバーロード解決によって選択された関数内での`static_assert`の定数条件式や、関数に対するdelete宣言などで表現できる "> 適格要件</ a > </ h2 >
274
273
< ul >
275
- < li > (1)、(3)、(5 )、(6) : < code > < a href ="../../type_traits/is_assignable.html "> is_assignable_v</ a > <mapped_type&, M&&></ code > が < code > true</ code > であること。< code > value_type</ code > は、< code > k</ code > , < code > < a href ="../../utility/forward.html "> forward</ a > <M>(obj)</ code > から < code > map</ code > に直接構築可能であること</ li >
276
- < li > (2)、(4 ) : < code > < a href ="../../type_traits/is_assignable.html "> is_assignable_v</ a > <mapped_type&, M&&></ 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 > <M>(obj)</ code > から < code > map</ code > に直接構築可能であること</ li >
274
+ < li > (1)、(3)、(4 )、(6) : < code > < a href ="../../type_traits/is_assignable.html "> is_assignable_v</ a > <mapped_type&, M&&></ code > が < code > true</ code > であること。< code > value_type</ code > は、< code > k</ code > , < code > < a href ="../../utility/forward.html "> forward</ a > <M>(obj)</ code > から < code > map</ code > に直接構築可能であること</ li >
275
+ < li > (2)、(5 ) : < code > < a href ="../../type_traits/is_assignable.html "> is_assignable_v</ a > <mapped_type&, M&&></ 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 > <M>(obj)</ code > から < code > map</ code > に直接構築可能であること</ li >
277
276
</ ul >
278
277
< p > なお、規格に記載はないが、< code > hint</ code > は < code > < a href ="emplace_hint.html "> emplace_hint</ a > </ code > と同様、コンテナの有効な読み取り専用イテレータである必要があるものと思われる。</ p >
279
278
< h2 > 効果</ h2 >
280
279
< 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 > <M>(obj)</ code > を代入する。そうでなければ、< code > k</ code > , < code > < a href ="../../utility/forward.html "> forward</ a > <M>(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 > <M>(obj)</ code > を代入する。そうでなければ、< code > < a href ="../../utility/move.html "> move</ a > (k)</ code > , < code > < a href ="../../utility/forward.html "> forward</ a > <M>(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 > <M>(obj)</ code > を代入する。そうでなければ、< code > k</ code > , < code > < a href ="../../utility/forward.html "> forward</ a > <M>(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 > <M>(obj)</ code > を代入する。そうでなければ、< code > < a href ="../../utility/move.html "> move</ a > (k)</ code > , < code > < a href ="../../utility/forward.html "> forward</ a > <M>(obj)</ code > から構築した < code > value_type</ code > 型のオブジェクトを挿入する。</ li >
283
282
</ ul >
284
283
< h2 > < a class ="cpprefjp-defined-word " data-desc ="関数呼び出し式の評価結果となるオブジェクト・値 "> 戻り値</ a > </ h2 >
285
284
< 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 >
287
286
< li > 挿入された場合には、< code > first</ code > に挿入された要素へのイテレータ、< code > second</ code > に < code > true</ code > が設定される。</ li >
288
287
< li > 代入された場合には、< code > first</ code > に代入された要素へのイテレータ、< code > second</ code > に < code > false</ code > が設定される。</ li >
289
288
</ ul >
290
289
</ li >
291
- < li > (3 )、(4 )、(6) :< ul >
290
+ < li > (4 )、(5 )、(6) :< ul >
292
291
< li > 挿入された場合には、挿入された要素へのイテレータを返す。</ li >
293
292
< li > 代入された場合には、代入された要素へのイテレータを返す。</ li >
294
293
</ ul >
295
294
</ li >
296
295
</ ul >
297
296
< h2 > < a class ="cpprefjp-defined-word " data-desc ="関数等の意味論を構成する要素の1つ。Complexity。関数が使うアルゴリズムの空間計算量・時間計算量 "> 計算量</ a > </ h2 >
298
297
< 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 >
301
300
</ ul >
302
301
< h2 > 備考</ h2 >
303
302
< ul >
304
- < li > (5 ), (6) :< ul >
303
+ < li > (3 ), (6) :< ul >
305
304
< 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 >
306
305
< li > これらの< a class ="cpprefjp-defined-word " data-desc ="同名の関数を異なる引数・テンプレート・制約などで複数定義すること。または同名の関数の集合 "> オーバーロード</ a > は、< code > map<string, int></ code > のようなコンテナに対し、検索操作で文字列リテラルを渡した際に、キー型の一時オブジェクトが生成されるコストを減らすためにある。</ li >
307
306
</ ul >
0 commit comments