|
68 | 68 |
|
69 | 69 | </head>
|
70 | 70 | <body>
|
71 |
| -<header data-kunai-mdinfo="{"meta": {"header": ["algorithm"], "namespace": ["std::ranges"], "id-type": ["function template"], "cpp": ["cpp20"]}, "sources": [{"id": "93f0b158e0bb885b2dcfb93a4373d7c615ca081f", "source": "#include <algorithm>\n#include <iostream>\n#include <array>\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 << \"not found\" << std::endl;\n } else {\n std::cout << \"found: \" << *result << std::endl;\n }\n}\n"}, {"id": "7cfa05b38b67380cb15dc980f9d7b354d361758c", "source": "#include <algorithm>\n#include <iostream>\n#include <vector>\n\nstruct Point {\n int x;\n int y;\n\n bool operator==(const Point& other) const = default;\n};\n\nint main() {\n std::vector<Point> 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 << \"not found\" << std::endl;\n } else {\n std::cout << \"found: \" << it->x << \",\" << it->y << std::endl;\n }\n}\n"}], "page_id": ["reference", "algorithm", "ranges_find"]}"> |
| 71 | +<header data-kunai-mdinfo="{"meta": {"header": ["algorithm"], "namespace": ["std::ranges"], "id-type": ["function template"], "cpp": ["cpp20"]}, "sources": [{"id": "93f0b158e0bb885b2dcfb93a4373d7c615ca081f", "source": "#include <algorithm>\n#include <iostream>\n#include <array>\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 << \"not found\" << std::endl;\n } else {\n std::cout << \"found: \" << *result << std::endl;\n }\n}\n"}, {"id": "c312c8b1a361be9f10c3c15d12ac991c51248ea0", "source": "#include <algorithm>\n#include <iostream>\n#include <vector>\n#include <string>\n\nstruct Item {\n int id;\n std::string name;\n};\n\nint main() {\n std::vector<Item> v = {\n {1, \"aaa\"},\n {3, \"bbb\"},\n {5, \"ccc\"}\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(\"bbb\"),\n &Item::name\n );\n if (it == v.end()) {\n std::cout << \"not found\" << std::endl;\n } else {\n std::cout << \"found: \" << it->id << ',' << it->name << 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(\"bbb\"),\n [](const Item& x) { return x.name; }\n );\n if (it == v.end()) {\n std::cout << \"not found\" << std::endl;\n } else {\n std::cout << \"found: \" << it->id << ',' << it->name << std::endl;\n }\n } \n}\n"}, {"id": "f152f5042a24134ea2eda1c36237cf3890caf5e8", "source": "#include <algorithm>\n#include <iostream>\n#include <vector>\n\nstruct Point {\n int x;\n int y;\n\n bool operator==(const Point& other) const = default;\n};\n\nint main() {\n std::vector<Point> 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 << \"not found\" << std::endl;\n } else {\n std::cout << \"found: \" << it->x << \",\" << it->y << std::endl;\n }\n}\n"}], "page_id": ["reference", "algorithm", "ranges_find"]}"> |
72 | 72 | <nav class="navbar navbar-default" role="navigation">
|
73 | 73 | <div class="container-fluid">
|
74 | 74 | <div class="navbar-header">
|
|
188 | 188 |
|
189 | 189 | <p class="text-right"><small>
|
190 | 190 | 最終更新日時(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秒 |
193 | 193 | </span>
|
194 | 194 | <br/>
|
195 | 195 | <span itemprop="author" itemscope itemtype="http://schema.org/Person">
|
@@ -296,8 +296,60 @@ <h3>基本的な使い方</h3>
|
296 | 296 | <h4>出力</h4>
|
297 | 297 | <p><pre><code>found: 1
|
298 | 298 | </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"><algorithm></a></span><span class="cp"></span> |
| 301 | +<span class="cp">#include</span> <span class="cpf"><a href="../iostream.html"><iostream></a></span><span class="cp"></span> |
| 302 | +<span class="cp">#include</span> <span class="cpf"><a href="../vector.html"><vector></a></span><span class="cp"></span> |
| 303 | +<span class="cp">#include</span> <span class="cpf"><a href="../string.html"><string></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"><</span><span class="n">Item</span><span class="o">></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">&</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"><<</span> <span class="s">"not found"</span> <span class="o"><<</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"><<</span> <span class="s">"found: "</span> <span class="o"><<</span> <span class="n">it</span><span class="o">-></span><span class="n">id</span> <span class="o"><<</span> <span class="sc">','</span> <span class="o"><<</span> <span class="n">it</span><span class="o">-></span><span class="n">name</span> <span class="o"><<</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">&</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"><<</span> <span class="s">"not found"</span> <span class="o"><<</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"><<</span> <span class="s">"found: "</span> <span class="o"><<</span> <span class="n">it</span><span class="o">-></span><span class="n">id</span> <span class="o"><<</span> <span class="sc">','</span> <span class="o"><<</span> <span class="n">it</span><span class="o">-></span><span class="n">name</span> <span class="o"><<</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> |
299 | 351 | <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"><algorithm></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"><algorithm></a></span><span class="cp"></span> |
301 | 353 | <span class="cp">#include</span> <span class="cpf"><a href="../iostream.html"><iostream></a></span><span class="cp"></span>
|
302 | 354 | <span class="cp">#include</span> <span class="cpf"><a href="../vector.html"><vector></a></span><span class="cp"></span>
|
303 | 355 |
|
|
0 commit comments