Skip to content

Commit ff41efb

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent a377425 commit ff41efb

File tree

3 files changed

+140
-622
lines changed

3 files changed

+140
-622
lines changed

reference/algorithm/ranges_find.html

Lines changed: 56 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868

6969
</head>
7070
<body>
71-
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;algorithm&#34;], &#34;namespace&#34;: [&#34;std::ranges&#34;], &#34;id-type&#34;: [&#34;function template&#34;], &#34;cpp&#34;: [&#34;cpp20&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;93f0b158e0bb885b2dcfb93a4373d7c615ca081f&#34;, &#34;source&#34;: &#34;#include &lt;algorithm&gt;\n#include &lt;iostream&gt;\n#include &lt;array&gt;\n\nint main() {\n constexpr std::array v = { 3, 1, 4 };\n const auto result = std::ranges::find(v, 1);\n if (result == v.end()) {\n std::cout &lt;&lt; \&#34;not found\&#34; &lt;&lt; std::endl;\n } else {\n std::cout &lt;&lt; \&#34;found: \&#34; &lt;&lt; *result &lt;&lt; std::endl;\n }\n}\n&#34;}, {&#34;id&#34;: &#34;7cfa05b38b67380cb15dc980f9d7b354d361758c&#34;, &#34;source&#34;: &#34;#include &lt;algorithm&gt;\n#include &lt;iostream&gt;\n#include &lt;vector&gt;\n\nstruct Point {\n int x;\n int y;\n\n bool operator==(const Point&amp; other) const = default;\n};\n\nint main() {\n std::vector&lt;Point&gt; v = {\n {1, 2},\n {3, 4},\n {5, 6}\n };\n\n auto it = std::ranges::find(v, {3, 4});\n if (it == v.end()) {\n std::cout &lt;&lt; \&#34;not found\&#34; &lt;&lt; std::endl;\n } else {\n std::cout &lt;&lt; \&#34;found: \&#34; &lt;&lt; it-&gt;x &lt;&lt; \&#34;,\&#34; &lt;&lt; it-&gt;y &lt;&lt; std::endl;\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;algorithm&#34;, &#34;ranges_find&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;algorithm&#34;], &#34;namespace&#34;: [&#34;std::ranges&#34;], &#34;id-type&#34;: [&#34;function template&#34;], &#34;cpp&#34;: [&#34;cpp20&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;93f0b158e0bb885b2dcfb93a4373d7c615ca081f&#34;, &#34;source&#34;: &#34;#include &lt;algorithm&gt;\n#include &lt;iostream&gt;\n#include &lt;array&gt;\n\nint main() {\n constexpr std::array v = { 3, 1, 4 };\n const auto result = std::ranges::find(v, 1);\n if (result == v.end()) {\n std::cout &lt;&lt; \&#34;not found\&#34; &lt;&lt; std::endl;\n } else {\n std::cout &lt;&lt; \&#34;found: \&#34; &lt;&lt; *result &lt;&lt; std::endl;\n }\n}\n&#34;}, {&#34;id&#34;: &#34;c312c8b1a361be9f10c3c15d12ac991c51248ea0&#34;, &#34;source&#34;: &#34;#include &lt;algorithm&gt;\n#include &lt;iostream&gt;\n#include &lt;vector&gt;\n#include &lt;string&gt;\n\nstruct Item {\n int id;\n std::string name;\n};\n\nint main() {\n std::vector&lt;Item&gt; v = {\n {1, \&#34;aaa\&#34;},\n {3, \&#34;bbb\&#34;},\n {5, \&#34;ccc\&#34;}\n };\n\n // \u30e1\u30f3\u30d0\u5909\u6570\u30dd\u30a4\u30f3\u30bf\u3092\u4f7f\u3063\u3066\u7279\u5b9a\u306e\u30e1\u30f3\u30d0\u5909\u6570\u3067\u691c\u7d22\n {\n auto it = std::ranges::find(\n v,\n std::string(\&#34;bbb\&#34;),\n &amp;Item::name\n );\n if (it == v.end()) {\n std::cout &lt;&lt; \&#34;not found\&#34; &lt;&lt; std::endl;\n } else {\n std::cout &lt;&lt; \&#34;found: \&#34; &lt;&lt; it-&gt;id &lt;&lt; &#39;,&#39; &lt;&lt; it-&gt;name &lt;&lt; std::endl;\n }\n }\n\n // \u30e9\u30e0\u30c0\u5f0f\u3067\u7279\u5b9a\u306e\u30e1\u30f3\u30d0\u5909\u6570\u3092\u691c\u7d22\n {\n auto it = std::ranges::find(\n v,\n std::string(\&#34;bbb\&#34;),\n [](const Item&amp; x) { return x.name; }\n );\n if (it == v.end()) {\n std::cout &lt;&lt; \&#34;not found\&#34; &lt;&lt; std::endl;\n } else {\n std::cout &lt;&lt; \&#34;found: \&#34; &lt;&lt; it-&gt;id &lt;&lt; &#39;,&#39; &lt;&lt; it-&gt;name &lt;&lt; std::endl;\n }\n } \n}\n&#34;}, {&#34;id&#34;: &#34;f152f5042a24134ea2eda1c36237cf3890caf5e8&#34;, &#34;source&#34;: &#34;#include &lt;algorithm&gt;\n#include &lt;iostream&gt;\n#include &lt;vector&gt;\n\nstruct Point {\n int x;\n int y;\n\n bool operator==(const Point&amp; other) const = default;\n};\n\nint main() {\n std::vector&lt;Point&gt; v = {\n {1, 2},\n {3, 4},\n {5, 6}\n };\n\n auto it = std::ranges::find(v, {3, 4});\n if (it == v.end()) {\n std::cout &lt;&lt; \&#34;not found\&#34; &lt;&lt; std::endl;\n } else {\n std::cout &lt;&lt; \&#34;found: \&#34; &lt;&lt; it-&gt;x &lt;&lt; \&#34;,\&#34; &lt;&lt; it-&gt;y &lt;&lt; std::endl;\n }\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;algorithm&#34;, &#34;ranges_find&#34;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -188,8 +188,8 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2025-05-26T07:38:51">
192-
2025年05月26日 07時38分51秒
191+
<span itemprop="datePublished" content="2025-05-27T08:08:10">
192+
2025年05月27日 08時08分10秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
@@ -296,8 +296,60 @@ <h3>基本的な使い方</h3>
296296
<h4>出力</h4>
297297
<p><pre><code>found: 1
298298
</code></pre></p>
299+
<h3>射影変換を使用した例</h3>
300+
<p><div class="yata" id="c312c8b1a361be9f10c3c15d12ac991c51248ea0"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../algorithm.html">&lt;algorithm&gt;</a></span><span class="cp"></span>
301+
<span class="cp">#include</span> <span class="cpf"><a href="../iostream.html">&lt;iostream&gt;</a></span><span class="cp"></span>
302+
<span class="cp">#include</span> <span class="cpf"><a href="../vector.html">&lt;vector&gt;</a></span><span class="cp"></span>
303+
<span class="cp">#include</span> <span class="cpf"><a href="../string.html">&lt;string&gt;</a></span><span class="cp"></span>
304+
305+
<span class="k">struct</span> <span class="n">Item</span> <span class="p">{</span>
306+
<span class="kt">int</span> <span class="n">id</span><span class="p">;</span>
307+
<span class="n"><a href="../string/basic_string.html">std::string</a></span> <span class="n">name</span><span class="p">;</span>
308+
<span class="p">};</span>
309+
310+
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
311+
<span class="n"><a href="../vector/vector.html">std::vector</a></span><span class="o">&lt;</span><span class="n">Item</span><span class="o">&gt;</span> <span class="n">v</span> <span class="o">=</span> <span class="p">{</span>
312+
<span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="s">"aaa"</span><span class="p">},</span>
313+
<span class="p">{</span><span class="mi">3</span><span class="p">,</span> <span class="s">"bbb"</span><span class="p">},</span>
314+
<span class="p">{</span><span class="mi">5</span><span class="p">,</span> <span class="s">"ccc"</span><span class="p">}</span>
315+
<span class="p">};</span>
316+
317+
<span class="c1">// メンバ変数ポインタを使って特定のメンバ変数で検索</span>
318+
<span class="p">{</span>
319+
<span class="k">auto</span> <span class="n">it</span> <span class="o">=</span> <span class="n"><span style="color:#ff0000">std::ranges::find</span></span><span class="p">(</span>
320+
<span class="n">v</span><span class="p">,</span>
321+
<span class="n"><a href="../string/basic_string.html">std::string</a></span><span class="p">(</span><span class="s">"bbb"</span><span class="p">),</span>
322+
<span class="o">&amp;</span><span class="n">Item</span><span class="o">::</span><span class="n">name</span>
323+
<span class="p">);</span>
324+
<span class="k">if</span> <span class="p">(</span><span class="n">it</span> <span class="o">==</span> <span class="n"><a href="../vector/vector/end.html">v.end()</a></span><span class="p">)</span> <span class="p">{</span>
325+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="s">"not found"</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
326+
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
327+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="s">"found: "</span> <span class="o">&lt;&lt;</span> <span class="n">it</span><span class="o">-&gt;</span><span class="n">id</span> <span class="o">&lt;&lt;</span> <span class="sc">','</span> <span class="o">&lt;&lt;</span> <span class="n">it</span><span class="o">-&gt;</span><span class="n">name</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
328+
<span class="p">}</span>
329+
<span class="p">}</span>
330+
331+
<span class="c1">// ラムダ式で特定のメンバ変数を検索</span>
332+
<span class="p">{</span>
333+
<span class="k">auto</span> <span class="n">it</span> <span class="o">=</span> <span class="n"><span style="color:#ff0000">std::ranges::find</span></span><span class="p">(</span>
334+
<span class="n">v</span><span class="p">,</span>
335+
<span class="n"><a href="../string/basic_string.html">std::string</a></span><span class="p">(</span><span class="s">"bbb"</span><span class="p">),</span>
336+
<span class="p">[](</span><span class="k">const</span> <span class="n">Item</span><span class="o">&amp;</span> <span class="n">x</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="n">x</span><span class="p">.</span><span class="n">name</span><span class="p">;</span> <span class="p">}</span>
337+
<span class="p">);</span>
338+
<span class="k">if</span> <span class="p">(</span><span class="n">it</span> <span class="o">==</span> <span class="n"><a href="../vector/vector/end.html">v.end()</a></span><span class="p">)</span> <span class="p">{</span>
339+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="s">"not found"</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
340+
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
341+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="s">"found: "</span> <span class="o">&lt;&lt;</span> <span class="n">it</span><span class="o">-&gt;</span><span class="n">id</span> <span class="o">&lt;&lt;</span> <span class="sc">','</span> <span class="o">&lt;&lt;</span> <span class="n">it</span><span class="o">-&gt;</span><span class="n">name</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
342+
<span class="p">}</span>
343+
<span class="p">}</span>
344+
<span class="p">}</span>
345+
</code></pre></div>
346+
</div></p>
347+
<h4>出力</h4>
348+
<p><pre><code>found: 3,bbb
349+
found: 3,bbb
350+
</code></pre></p>
299351
<h3>波カッコ初期化を入力として使用する (C++26)</h3>
300-
<p><div class="yata" id="7cfa05b38b67380cb15dc980f9d7b354d361758c"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../algorithm.html">&lt;algorithm&gt;</a></span><span class="cp"></span>
352+
<p><div class="yata" id="f152f5042a24134ea2eda1c36237cf3890caf5e8"><div class="codehilite"><pre><span></span><code><span class="cp">#include</span> <span class="cpf"><a href="../algorithm.html">&lt;algorithm&gt;</a></span><span class="cp"></span>
301353
<span class="cp">#include</span> <span class="cpf"><a href="../iostream.html">&lt;iostream&gt;</a></span><span class="cp"></span>
302354
<span class="cp">#include</span> <span class="cpf"><a href="../vector.html">&lt;vector&gt;</a></span><span class="cp"></span>
303355

0 commit comments

Comments
 (0)