6868
6969 </ head >
7070 < 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"]} ">
7272 < nav class ="navbar navbar-default " role ="navigation ">
7373 < div class ="container-fluid ">
7474 < div class ="navbar-header ">
200200
201201 < p class ="text-right "> < small >
202202 最終更新日時(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秒
205205 </ span >
206206 < br />
207207 < span itemprop ="author " itemscope itemtype ="http://schema.org/Person ">
227227 < 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 >
228228< 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 >
229229 < 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 >
231235< span class ="p "> }</ span >
232236</ code > </ pre > </ div >
233237</ p >
@@ -242,7 +246,21 @@ <h2>効果</h2>
242246</ code > </ pre > </ p >
243247< h2 > < a class ="cpprefjp-defined-word " data-desc ="関数呼び出し式の評価結果となるオブジェクト・値 "> 戻り値</ a > </ h2 >
244248< 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 >
245262< h2 > 例</ h2 >
263+ < h3 > 基本的な使い方</ h3 >
246264< 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 >
247265< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../deque.html "> <deque></ a > </ span > < span class ="cp "> </ span >
248266
@@ -259,11 +277,34 @@ <h2>例</h2>
259277< span class ="p "> }</ span >
260278</ code > </ pre > </ div >
261279</ div > </ p >
262- < h3 > 出力</ h3 >
280+ < h4 > 出力</ h4 >
263281< p > < pre > < code > 3
2642824
2652835
266284</ 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 >
267308< h2 > バージョン</ h2 >
268309< h3 > 言語</ h3 >
269310< ul >
@@ -279,6 +320,10 @@ <h2>参照</h2>
279320< ul >
280321< 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 >
281322< 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 >
282327</ ul > </ div >
283328
284329 </ div >
0 commit comments