68
68
69
69
</ head >
70
70
< body >
71
- < header data-kunai-mdinfo ="{"meta": {"header": ["deque"], "namespace": ["std"], "id-type": ["function template"], "cpp": ["cpp20"]}, "sources": [{"id": "6a94dc6d4c325f1e5d02b2aa328d9aa0d21b341f", "source": "#include <iostream>\n#include <deque>\n\nint main()\n{\n std::deque<int> deq = {3, 1, 4, 1, 5};\n\n // \u30b3\u30f3\u30c6\u30cadeq\u304b\u3089\u3001\u50241\u3092\u3082\u3064\u8981\u7d20\u3092\u3059\u3079\u3066\u524a\u9664\u3059\u308b\n std::erase(deq, 1);\n\n for (int x : deq) {\n std::cout << x << std::endl;\n }\n}\n"}], "page_id": ["reference", "deque", "deque", "erase_free"]} ">
71
+ < header data-kunai-mdinfo ="{"meta": {"header": ["deque"], "namespace": ["std"], "id-type": ["function template"], "cpp": ["cpp20"]}, "sources": [{"id": "6a94dc6d4c325f1e5d02b2aa328d9aa0d21b341f", "source": "#include <iostream>\n#include <deque>\n\nint main()\n{\n std::deque<int> deq = {3, 1, 4, 1, 5};\n\n // \u30b3\u30f3\u30c6\u30cadeq\u304b\u3089\u3001\u50241\u3092\u3082\u3064\u8981\u7d20\u3092\u3059\u3079\u3066\u524a\u9664\u3059\u308b\n std::erase(deq, 1);\n\n for (int x : deq) {\n std::cout << x << std::endl;\n }\n}\n"}, {"id": "389a0cca9fe3d39b8386427517d94e701b836c5e", "source": "#include <print>\n#include <deque>\n#include <vector>\n\nint main() {\n std::deque<std::vector<int>> d = {\n {1, 2, 3},\n {4, 5, 6},\n {},\n {7, 8}\n };\n\n std::erase(d, {}); // \u7a7a\u306e\u8981\u7d20\u3092\u524a\u9664\n std::erase(d, {1, 2, 3}); // \u5024{1, 2, 3}\u3092\u3082\u3064\u8981\u7d20\u3092\u524a\u9664\n\n std::println(\"{}\", d);\n}\n"}], "page_id": ["reference", "deque", "deque", "erase_free"]} ">
72
72
< nav class ="navbar navbar-default " role ="navigation ">
73
73
< div class ="container-fluid ">
74
74
< div class ="navbar-header ">
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-22T14:44:27 ">
204
+ 2025年05月22日 14時44分27秒
205
205
</ span >
206
206
< br />
207
207
< span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
227
227
< div class ="identifier-type "> function template</ div > < div class ="header "> <deque></ div > < h1 itemprop ="name "> < span class ="namespace " title ="namespace std "> std::</ span > < span class ="token "> erase (非メンバ関数)</ span > < span class ="cpp cpp20 " title ="C++20で追加 "> (C++20)</ span > </ h1 >
228
228
< div itemprop ="articleBody "> < p > < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="k "> namespace</ span > < span class ="n "> std</ span > < span class ="p "> {</ span >
229
229
< span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> T</ span > < span class ="p "> ,</ span > < span class ="k "> class</ span > < span class ="nc "> Allocator</ span > < span class ="p "> ,</ span > < span class ="k "> class</ span > < span class ="nc "> U</ span > < span class ="o "> ></ span >
230
- < span class ="k "> typename</ span > < span class ="n "> deque</ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="p "> ,</ span > < span class ="n "> Allocator</ span > < span class ="o "> >::</ span > < span class ="n "> size_type</ span > < span class ="n "> erase</ span > < span class ="p "> (</ span > < span class ="n "> deque</ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="p "> ,</ span > < span class ="n "> Allocator</ span > < span class ="o "> >&</ span > < span class ="n "> c</ span > < span class ="p "> ,</ span > < span class ="k "> const</ span > < span class ="n "> U</ span > < span class ="o "> &</ span > < span class ="n "> value</ span > < span class ="p "> );</ span >
230
+ < span class ="k "> typename</ span > < span class ="n "> deque</ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="p "> ,</ span > < span class ="n "> Allocator</ span > < span class ="o "> >::</ span > < span class ="n "> size_type</ span >
231
+ < span class ="n "> erase</ span > < span class ="p "> (</ span > < span class ="n "> deque</ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="p "> ,</ span > < span class ="n "> Allocator</ span > < span class ="o "> >&</ span > < span class ="n "> c</ span > < span class ="p "> ,</ span > < span class ="k "> const</ span > < span class ="n "> U</ span > < span class ="o "> &</ span > < span class ="n "> value</ span > < span class ="p "> );</ span > < span class ="c1 "> // (1) C++20</ span >
232
+ < span class ="k "> template</ span > < span class ="o "> <</ span > < span class ="k "> class</ span > < span class ="nc "> T</ span > < span class ="p "> ,</ span > < span class ="k "> class</ span > < span class ="nc "> Allocator</ span > < span class ="p "> ,</ span > < span class ="k "> class</ span > < span class ="nc "> U</ span > < span class ="o "> =</ span > < span class ="n "> T</ span > < span class ="o "> ></ span >
233
+ < span class ="k "> typename</ span > < span class ="n "> deque</ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="p "> ,</ span > < span class ="n "> Allocator</ span > < span class ="o "> >::</ span > < span class ="n "> size_type</ span >
234
+ < span class ="n "> erase</ span > < span class ="p "> (</ span > < span class ="n "> deque</ span > < span class ="o "> <</ span > < span class ="n "> T</ span > < span class ="p "> ,</ span > < span class ="n "> Allocator</ span > < span class ="o "> >&</ span > < span class ="n "> c</ span > < span class ="p "> ,</ span > < span class ="k "> const</ span > < span class ="n "> U</ span > < span class ="o "> &</ span > < span class ="n "> value</ span > < span class ="p "> );</ span > < span class ="c1 "> // (1) C++26</ span >
231
235
< span class ="p "> }</ span >
232
236
</ code > </ pre > </ div >
233
237
</ p >
@@ -242,7 +246,21 @@ <h2>効果</h2>
242
246
</ code > </ pre > </ p >
243
247
< h2 > < a class ="cpprefjp-defined-word " data-desc ="関数呼び出し式の評価結果となるオブジェクト・値 "> 戻り値</ a > </ h2 >
244
248
< p > 削除した要素数を返す。</ p >
249
+ < h2 > 備考</ h2 >
250
+ < ul >
251
+ < li > (1) :< ul >
252
+ < li > C++26 : 引数として波カッコ初期化< code > {}</ code > を受け付ける
253
+ < br />
254
+ < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="n "> < a href ="../deque.html "> std::deque</ a > </ span > < span class ="o "> <</ span > < span class ="n "> < a href ="../../vector/vector.html "> std::vector</ a > </ span > < span class ="o "> <</ span > < span class ="kt "> int</ span > < span class ="o "> >></ span > < span class ="n "> d</ span > < span class ="p "> ;</ span >
255
+ < span class ="n "> erase</ span > < span class ="p "> (</ span > < span class ="n "> d</ span > < span class ="p "> ,</ span > < span class ="p "> {});</ span > < span class ="c1 "> // 空の要素を削除</ span >
256
+ < span class ="n "> erase</ span > < span class ="p "> (</ span > < span class ="n "> d</ span > < span class ="p "> ,</ span > < span class ="p "> {</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="mi "> 2</ span > < span class ="p "> ,</ span > < span class ="mi "> 3</ span > < span class ="p "> });</ span > < span class ="c1 "> // 値{1, 2, 3}をもつ要素を削除</ span >
257
+ </ code > </ pre > </ div >
258
+ </ li >
259
+ </ ul >
260
+ </ li >
261
+ </ ul >
245
262
< h2 > 例</ h2 >
263
+ < h3 > 基本的な使い方</ h3 >
246
264
< p > < div class ="yata " id ="6a94dc6d4c325f1e5d02b2aa328d9aa0d21b341f "> < 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 ="../deque.html "> <deque></ a > </ span > < span class ="cp "> </ span >
248
266
@@ -259,11 +277,34 @@ <h2>例</h2>
259
277
< span class ="p "> }</ span >
260
278
</ code > </ pre > </ div >
261
279
</ div > </ p >
262
- < h3 > 出力</ h3 >
280
+ < h4 > 出力</ h4 >
263
281
< p > < pre > < code > 3
264
282
4
265
283
5
266
284
</ code > </ pre > </ p >
285
+ < h3 > 波カッコ初期化を入力として使用する (C++26)</ h3 >
286
+ < p > < div class ="yata " id ="389a0cca9fe3d39b8386427517d94e701b836c5e "> < div class ="codehilite "> < pre > < span > </ span > < code > < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../../print.html "> <print></ a > </ span > < span class ="cp "> </ span >
287
+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../deque.html "> <deque></ a > </ span > < span class ="cp "> </ span >
288
+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../../vector.html "> <vector></ a > </ span > < span class ="cp "> </ span >
289
+
290
+ < span class ="kt "> int</ span > < span class ="nf "> main</ span > < span class ="p "> ()</ span > < span class ="p "> {</ span >
291
+ < span class ="n "> < a href ="../deque.html "> std::deque</ a > </ span > < span class ="o "> <</ span > < span class ="n "> < a href ="../../vector/vector.html "> std::vector</ a > </ span > < span class ="o "> <</ span > < span class ="kt "> int</ span > < span class ="o "> >></ span > < span class ="n "> d</ span > < span class ="o "> =</ span > < span class ="p "> {</ span >
292
+ < span class ="p "> {</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="mi "> 2</ span > < span class ="p "> ,</ span > < span class ="mi "> 3</ span > < span class ="p "> },</ span >
293
+ < span class ="p "> {</ span > < span class ="mi "> 4</ span > < span class ="p "> ,</ span > < span class ="mi "> 5</ span > < span class ="p "> ,</ span > < span class ="mi "> 6</ span > < span class ="p "> },</ span >
294
+ < span class ="p "> {},</ span >
295
+ < span class ="p "> {</ span > < span class ="mi "> 7</ span > < span class ="p "> ,</ span > < span class ="mi "> 8</ span > < span class ="p "> }</ span >
296
+ < span class ="p "> };</ span >
297
+
298
+ < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> erase</ span > < span class ="p "> (</ span > < span class ="n "> d</ span > < span class ="p "> ,</ span > < span class ="p "> {});</ span > < span class ="c1 "> // 空の要素を削除</ span >
299
+ < span class ="n "> std</ span > < span class ="o "> ::</ span > < span class ="n "> erase</ span > < span class ="p "> (</ span > < span class ="n "> d</ span > < span class ="p "> ,</ span > < span class ="p "> {</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="mi "> 2</ span > < span class ="p "> ,</ span > < span class ="mi "> 3</ span > < span class ="p "> });</ span > < span class ="c1 "> // 値{1, 2, 3}をもつ要素を削除</ span >
300
+
301
+ < span class ="n "> < a href ="../../print/println.html "> std::println</ a > </ span > < span class ="p "> (</ span > < span class ="s "> "{}"</ span > < span class ="p "> ,</ span > < span class ="n "> d</ span > < span class ="p "> );</ span >
302
+ < span class ="p "> }</ span >
303
+ </ code > </ pre > </ div >
304
+ </ div > </ p >
305
+ < h4 > 出力</ h4 >
306
+ < p > < pre > < code > [[4, 5, 6], [7, 8]]
307
+ </ code > </ pre > </ p >
267
308
< h2 > バージョン</ h2 >
268
309
< h3 > 言語</ h3 >
269
310
< ul >
@@ -279,6 +320,10 @@ <h2>参照</h2>
279
320
< ul >
280
321
< li > < a href ="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1209r0.html " target ="_blank "> P1209R0 Adopt consistent container erasure from Library Fundamentals 2</ a > </ li >
281
322
< li > < a href ="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1115r3.pdf " target ="_blank "> R1115R3 Improving the Return Value of Erase-Like Algorithms II: Free < code > erase</ code > /< code > erase_if</ code > </ a > </ li >
323
+ < li > < a href ="https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2248r8.html " target ="_blank "> P2248R8 Enabling list-initialization for algorithms</ a > < ul >
324
+ < li > C++26で波カッコ初期化 (リスト初期化) に対応した</ li >
325
+ </ ul >
326
+ </ li >
282
327
</ ul > </ div >
283
328
284
329
</ div >
0 commit comments