Skip to content

Commit 54495b0

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent a9e72a4 commit 54495b0

File tree

11 files changed

+1589
-135
lines changed

11 files changed

+1589
-135
lines changed

reference/algorithm/find.html

Lines changed: 86 additions & 18 deletions
Large diffs are not rendered by default.

reference/algorithm/ranges_find.html

Lines changed: 71 additions & 5 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;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;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;]}">
7272
<nav class="navbar navbar-default" role="navigation">
7373
<div class="container-fluid">
7474
<div class="navbar-header">
@@ -188,12 +188,12 @@
188188

189189
<p class="text-right"><small>
190190
最終更新日時(UTC):
191-
<span itemprop="datePublished" content="2024-07-07T06:36:42">
192-
2024年07月07日 06時36分42秒
191+
<span itemprop="datePublished" content="2025-05-23T07:13:32">
192+
2025年05月23日 07時13分32秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
196-
<span itemprop="name">suomesta</span>
196+
<span itemprop="name">Akira Takahashi</span>
197197
</span>
198198
が更新
199199
</small></p>
@@ -224,6 +224,16 @@
224224
<span class="n">S</span> <span class="n">last</span><span class="p">,</span>
225225
<span class="k">const</span> <span class="n">T</span><span class="o">&amp;</span> <span class="n">value</span><span class="p">,</span>
226226
<span class="n">Proj</span> <span class="n">proj</span> <span class="o">=</span> <span class="p">{});</span> <span class="c1">// (1) C++20</span>
227+
<span class="k">template</span> <span class="o">&lt;</span><span class="n"><a href="../iterator/input_iterator.html">input_iterator</a></span> <span class="n">I</span><span class="p">,</span>
228+
<span class="n"><a href="../iterator/sentinel_for.html">sentinel_for</a></span><span class="o">&lt;</span><span class="n">I</span><span class="o">&gt;</span> <span class="n">S</span><span class="p">,</span>
229+
<span class="k">class</span> <span class="nc">Proj</span> <span class="o">=</span> <span class="n"><a href="../functional/identity.html">identity</a></span><span class="p">,</span>
230+
<span class="k">class</span> <span class="nc">T</span> <span class="o">=</span> <span class="n"><a href="../iterator/projected_value_t.html">projected_value_t</a></span><span class="o">&lt;</span><span class="n">I</span><span class="p">,</span> <span class="n">Proj</span><span class="o">&gt;&gt;</span>
231+
<span class="n">requires</span> <span class="n"><a href="../iterator/indirect_binary_predicate.html">indirect_binary_predicate</a></span><span class="o">&lt;</span><span class="n"><a href="../functional/ranges_equal_to.html">ranges::equal_to</a></span><span class="p">,</span> <span class="n"><a href="../iterator/projected.html">projected</a></span><span class="o">&lt;</span><span class="n">I</span><span class="p">,</span> <span class="n">Proj</span><span class="o">&gt;</span><span class="p">,</span> <span class="k">const</span> <span class="n">T</span><span class="o">*&gt;</span>
232+
<span class="k">constexpr</span> <span class="n">I</span>
233+
<span class="n">find</span><span class="p">(</span><span class="n">I</span> <span class="n">first</span><span class="p">,</span>
234+
<span class="n">S</span> <span class="n">last</span><span class="p">,</span>
235+
<span class="k">const</span> <span class="n">T</span><span class="o">&amp;</span> <span class="n">value</span><span class="p">,</span>
236+
<span class="n">Proj</span> <span class="n">proj</span> <span class="o">=</span> <span class="p">{});</span> <span class="c1">// (1) C++26</span>
227237

228238
<span class="k">template</span> <span class="o">&lt;</span><span class="n"><a href="../ranges/input_range.html">input_range</a></span> <span class="n">R</span><span class="p">,</span>
229239
<span class="k">class</span> <span class="nc">T</span><span class="p">,</span>
@@ -233,6 +243,14 @@
233243
<span class="n">find</span><span class="p">(</span><span class="n">R</span><span class="o">&amp;&amp;</span> <span class="n">r</span><span class="p">,</span>
234244
<span class="k">const</span> <span class="n">T</span><span class="o">&amp;</span> <span class="n">value</span><span class="p">,</span>
235245
<span class="n">Proj</span> <span class="n">proj</span> <span class="o">=</span> <span class="p">{});</span> <span class="c1">// (2) C++20</span>
246+
<span class="k">template</span> <span class="o">&lt;</span><span class="n"><a href="../ranges/input_range.html">input_range</a></span> <span class="n">R</span><span class="p">,</span>
247+
<span class="k">class</span> <span class="nc">Proj</span> <span class="o">=</span> <span class="n"><a href="../functional/identity.html">identity</a></span><span class="p">,</span>
248+
<span class="k">class</span> <span class="nc">T</span> <span class="o">=</span> <span class="n"><a href="../iterator/projected_value_t.html">projected_value_t</a></span><span class="o">&lt;</span><span class="n"><a href="../ranges/iterator_t.html">iterator_t</a></span><span class="o">&lt;</span><span class="n">R</span><span class="o">&gt;</span><span class="p">,</span> <span class="n">Proj</span><span class="o">&gt;&gt;</span>
249+
<span class="n">requires</span> <span class="n"><a href="../iterator/indirect_binary_predicate.html">indirect_binary_predicate</a></span><span class="o">&lt;</span><span class="n"><a href="../functional/ranges_equal_to.html">ranges::equal_to</a></span><span class="p">,</span> <span class="n"><a href="../iterator/projected.html">projected</a></span><span class="o">&lt;</span><span class="n"><a href="../ranges/iterator_t.html">iterator_t</a></span><span class="o">&lt;</span><span class="n">R</span><span class="o">&gt;</span><span class="p">,</span> <span class="n">Proj</span><span class="o">&gt;</span><span class="p">,</span> <span class="k">const</span> <span class="n">T</span><span class="o">*&gt;</span>
250+
<span class="k">constexpr</span> <span class="n"><a href="../ranges/borrowed_iterator_t.html">borrowed_iterator_t</a></span><span class="o">&lt;</span><span class="n">R</span><span class="o">&gt;</span>
251+
<span class="n">find</span><span class="p">(</span><span class="n">R</span><span class="o">&amp;&amp;</span> <span class="n">r</span><span class="p">,</span>
252+
<span class="k">const</span> <span class="n">T</span><span class="o">&amp;</span> <span class="n">value</span><span class="p">,</span>
253+
<span class="n">Proj</span> <span class="n">proj</span> <span class="o">=</span> <span class="p">{});</span> <span class="c1">// (2) C++26</span>
236254
<span class="p">}</span>
237255
</code></pre></div>
238256
</p>
@@ -246,7 +264,20 @@ <h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価
246264
<p><code>[first,last)</code> あるいは <code>r</code> 内のイテレータ i について、<code><a href="../functional/invoke.html">invoke</a>(proj, *i) == value</code> であるような最初のイテレータを返す。そのようなイテレータが見つからなかった場合は <code>last</code> を返す。</p>
247265
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Complexity。関数が使うアルゴリズムの空間計算量・時間計算量">計算量</a></h2>
248266
<p>最大で <code>last - first</code> 回比較を行う</p>
267+
<h2>備考</h2>
268+
<ul>
269+
<li>(1), (2) :<ul>
270+
<li>C++26 : 引数として波カッコ初期化<code>{}</code>を受け付ける
271+
<br />
272+
<div class="codehilite"><pre><span></span><code> <span class="n"><a href="../vector/vector.html">std::vector</a></span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span> <span class="n">v</span><span class="p">;</span>
273+
<span class="k">auto</span> <span class="n">it</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">ranges</span><span class="o">::</span><span class="n">find</span><span class="p">(</span><span class="n">r</span><span class="p">,</span> <span class="p">{</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">});</span>
274+
</code></pre></div>
275+
</li>
276+
</ul>
277+
</li>
278+
</ul>
249279
<h2></h2>
280+
<h3>基本的な使い方</h3>
250281
<p><div class="yata" id="93f0b158e0bb885b2dcfb93a4373d7c615ca081f"><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>
251282
<span class="cp">#include</span> <span class="cpf"><a href="../iostream.html">&lt;iostream&gt;</a></span><span class="cp"></span>
252283
<span class="cp">#include</span> <span class="cpf"><a href="../array.html">&lt;array&gt;</a></span><span class="cp"></span>
@@ -262,9 +293,40 @@ <h2>例</h2>
262293
<span class="p">}</span>
263294
</code></pre></div>
264295
</div></p>
265-
<h3>出力</h3>
296+
<h4>出力</h4>
266297
<p><pre><code>found: 1
267298
</code></pre></p>
299+
<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>
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+
304+
<span class="k">struct</span> <span class="n">Point</span> <span class="p">{</span>
305+
<span class="kt">int</span> <span class="n">x</span><span class="p">;</span>
306+
<span class="kt">int</span> <span class="n">y</span><span class="p">;</span>
307+
308+
<span class="kt">bool</span> <span class="k">operator</span><span class="o">==</span><span class="p">(</span><span class="k">const</span> <span class="n">Point</span><span class="o">&amp;</span> <span class="n">other</span><span class="p">)</span> <span class="k">const</span> <span class="o">=</span> <span class="k">default</span><span class="p">;</span>
309+
<span class="p">};</span>
310+
311+
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
312+
<span class="n"><a href="../vector/vector.html">std::vector</a></span><span class="o">&lt;</span><span class="n">Point</span><span class="o">&gt;</span> <span class="n">v</span> <span class="o">=</span> <span class="p">{</span>
313+
<span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">},</span>
314+
<span class="p">{</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">},</span>
315+
<span class="p">{</span><span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">}</span>
316+
<span class="p">};</span>
317+
318+
<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><span class="n">v</span><span class="p">,</span> <span class="p">{</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">});</span>
319+
<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>
320+
<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>
321+
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
322+
<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">x</span> <span class="o">&lt;&lt;</span> <span class="s">","</span> <span class="o">&lt;&lt;</span> <span class="n">it</span><span class="o">-&gt;</span><span class="n">y</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
323+
<span class="p">}</span>
324+
<span class="p">}</span>
325+
</code></pre></div>
326+
</div></p>
327+
<h4>出力</h4>
328+
<p><pre><code>found: 3,4
329+
</code></pre></p>
268330
<h2>実装例</h2>
269331
<p><div class="codehilite"><pre><span></span><code><span class="k">struct</span> <span class="n">find_impl</span> <span class="p">{</span>
270332
<span class="k">template</span><span class="o">&lt;</span><span class="n"><a href="../iterator/input_iterator.html">input_iterator</a></span> <span class="n">I</span><span class="p">,</span> <span class="n"><a href="../iterator/sentinel_for.html">sentinel_for</a></span><span class="o">&lt;</span><span class="n">I</span><span class="o">&gt;</span> <span class="n">S</span><span class="p">,</span> <span class="k">class</span> <span class="nc">T</span><span class="p">,</span> <span class="k">class</span> <span class="nc">Proj</span> <span class="o">=</span> <span class="n"><a href="../functional/identity.html">identity</a></span><span class="o">&gt;</span>
@@ -300,6 +362,10 @@ <h3>処理系</h3>
300362
<h2>参照</h2>
301363
<ul>
302364
<li><a href="https://timsong-cpp.github.io/cppwp/n4861/algorithms" target="_blank">N4861 25 Algorithms library</a></li>
365+
<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>
366+
<li>C++26で波カッコ初期化 (リスト初期化) に対応した</li>
367+
</ul>
368+
</li>
303369
</ul></div>
304370

305371
</div>

reference/iterator.html

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,12 +176,12 @@
176176

177177
<p class="text-right"><small>
178178
最終更新日時(UTC):
179-
<span itemprop="datePublished" content="2022-06-05T18:23:51">
180-
2022年06月05日 18時23分51秒
179+
<span itemprop="datePublished" content="2025-05-23T07:13:32">
180+
2025年05月23日 07時13分32秒
181181
</span>
182182
<br/>
183183
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
184-
<span itemprop="name">Koichi Murase</span>
184+
<span itemprop="name">Akira Takahashi</span>
185185
</span>
186186
が更新
187187
</small></p>
@@ -462,6 +462,11 @@ <h2>イテレータの情報</h2>
462462
<td>C++20</td>
463463
</tr>
464464
<tr>
465+
<td><code><a href="iterator/projected_value_t.html">projected_value_t</a></code></td>
466+
<td>イイテレータ<code>I</code><code>Proj</code>による射影操作の結果となる値型を取得する (alias template)</td>
467+
<td>C++26</td>
468+
</tr>
469+
<tr>
465470
<td><code><a href="iterator/incrementable_traits.html">incrementable_traits</a></code></td>
466471
<td><code>iter_difference_t</code>にアダプトするためのカスタマイゼーションポイント (class template)</td>
467472
<td>C++20</td>

reference/iterator/indirectly_comparable.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ <h2>例</h2>
232232
<span class="cp">#include</span> <span class="cpf"><a href="../ranges.html">&lt;ranges&gt;</a></span><span class="cp"></span>
233233

234234
<span class="c1">// 間接参照可能なIの参照する値と、任意の範囲の全ての値を比較する</span>
235-
<span class="k">template</span><span class="o">&lt;</span><span class="k">class</span> <span class="nc">I</span><span class="p">,</span> <span class="k">class</span> <span class="nc">Range</span><span class="p">,</span> <span class="k">class</span> <span class="nc">R</span><span class="p">,</span> <span class="k">class</span> <span class="nc">P1</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n"><a href="../functional/identity.html">identity</a></span><span class="p">,</span> <span class="k">class</span> <span class="nc">P2</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n"><a href="../functional/identity.html">identity</a></span><span class="o">&gt;</span>
235+
<span class="k">template</span><span class="o">&lt;</span><span class="k">class</span> <span class="nc">I</span><span class="p">,</span> <span class="k">class</span> <span class="nc">Range</span><span class="p">,</span> <span class="k">class</span> <span class="nc">R</span><span class="p">,</span> <span class="k">class</span> <span class="nc">P1</span> <span class="o">=</span> <span class="n"><a href="../functional/identity.html">std::identity</a></span><span class="p">,</span> <span class="k">class</span> <span class="nc">P2</span> <span class="o">=</span> <span class="n"><a href="../functional/identity.html">std::identity</a></span><span class="o">&gt;</span>
236236
<span class="n">requires</span> <span class="n"><span style="color:#ff0000">std::indirectly_comparable</span></span><span class="o">&lt;</span><span class="n">I</span><span class="p">,</span> <span class="n">std</span><span class="o">::</span><span class="n">ranges</span><span class="o">::</span><span class="n"><a href="../ranges/iterator_t.html">iterator_t</a></span><span class="o">&lt;</span><span class="n">Range</span><span class="o">&gt;</span><span class="p">,</span> <span class="n">R</span><span class="p">,</span> <span class="n">P1</span><span class="p">,</span> <span class="n">P2</span><span class="o">&gt;</span>
237237
<span class="kt">bool</span> <span class="n">compare_range</span><span class="p">(</span><span class="n">I</span><span class="o">&amp;&amp;</span> <span class="n">lhs</span><span class="p">,</span> <span class="n">Range</span><span class="o">&amp;&amp;</span> <span class="n">r</span><span class="p">,</span> <span class="n">R</span> <span class="n">comp</span><span class="p">,</span> <span class="n">P1</span> <span class="n">proj1</span> <span class="o">=</span> <span class="p">{},</span> <span class="n">P2</span> <span class="n">proj2</span> <span class="o">=</span> <span class="p">{})</span> <span class="p">{</span>
238238
<span class="k">for</span> <span class="p">(</span><span class="k">auto</span><span class="o">&amp;&amp;</span> <span class="nl">rhs</span> <span class="p">:</span> <span class="n">r</span><span class="p">)</span> <span class="p">{</span>

0 commit comments

Comments
 (0)