Skip to content

Commit 0fe10b9

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent ab0304f commit 0fe10b9

File tree

99 files changed

+27374
-755
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

99 files changed

+27374
-755
lines changed

reference/algorithm/ranges_adjacent_find.html

Lines changed: 55 additions & 6 deletions
Large diffs are not rendered by default.

reference/algorithm/ranges_all_of.html

Lines changed: 50 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;d7a8449db5c7e1cf04f00bf6a5c909323cc89246&#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\n std::cout &lt;&lt; std::boolalpha;\n\n // \u5168\u3066\u306e\u8981\u7d20\u304c 5 \u3088\u308a\u5c0f\u3055\u3044\u304b\n constexpr bool result1 = std::ranges::all_of(v, [](int x) { return x &lt; 5; });\n std::cout &lt;&lt; result1 &lt;&lt; std::endl;\n\n // \u5168\u3066\u306e\u8981\u7d20\u304c 1 \u3067\u3042\u308b\u304b\n constexpr bool result2 = std::ranges::all_of(v, [](int x) { return x == 1; });\n std::cout &lt;&lt; result2 &lt;&lt; std::endl;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;algorithm&#34;, &#34;ranges_all_of&#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;d7a8449db5c7e1cf04f00bf6a5c909323cc89246&#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\n std::cout &lt;&lt; std::boolalpha;\n\n // \u5168\u3066\u306e\u8981\u7d20\u304c 5 \u3088\u308a\u5c0f\u3055\u3044\u304b\n constexpr bool result1 = std::ranges::all_of(v, [](int x) { return x &lt; 5; });\n std::cout &lt;&lt; result1 &lt;&lt; std::endl;\n\n // \u5168\u3066\u306e\u8981\u7d20\u304c 1 \u3067\u3042\u308b\u304b\n constexpr bool result2 = std::ranges::all_of(v, [](int x) { return x == 1; });\n std::cout &lt;&lt; result2 &lt;&lt; std::endl;\n}\n&#34;}, {&#34;id&#34;: &#34;aad9b7428c5763925df78e611e33dd064823d892&#34;, &#34;source&#34;: &#34;#include &lt;algorithm&gt;\n#include &lt;execution&gt;\n#include &lt;iostream&gt;\n#include &lt;vector&gt;\n\nint main() {\n std::vector&lt;int&gt; v = {2, 4, 6, 8, 10};\n\n std::cout &lt;&lt; std::boolalpha;\n\n // \u4e26\u5217\u306b\u5168\u3066\u306e\u8981\u7d20\u304c\u5076\u6570\u3067\u3042\u308b\u304b\u3092\u5224\u5b9a\n bool result = std::ranges::all_of(std::execution::par, v,\n [](int x) { return x % 2 == 0; });\n std::cout &lt;&lt; result &lt;&lt; std::endl;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;algorithm&#34;, &#34;ranges_all_of&#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="2025-08-31T10:06:36">
192-
2025年08月31日 10時06分36秒
191+
<span itemprop="datePublished" content="2026-02-05T04:53:18">
192+
2026年02月05日 04時53分18秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
196-
<span itemprop="name">Raclamusi</span>
196+
<span itemprop="name">Akira Takahashi</span>
197197
</span>
198198
が更新
199199
</small></p>
@@ -226,6 +226,26 @@
226226
<span class="n"><a href="../iterator/indirect_unary_predicate.html">indirect_unary_predicate</a></span><span class="o">&lt;</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;&gt;</span> <span class="n">Pred</span><span class="o">&gt;</span>
227227
<span class="k">constexpr</span> <span class="kt">bool</span>
228228
<span class="n">all_of</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> <span class="n">Pred</span> <span class="n">pred</span><span class="p">,</span> <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>
229+
230+
<span class="k">template</span> <span class="o">&lt;</span><span class="n"><a href="../execution/execution-policy.html">execution-policy</a></span> <span class="n">Ep</span><span class="p">,</span>
231+
<span class="n"><a href="../iterator/random_access_iterator.html">random_access_iterator</a></span> <span class="n">I</span><span class="p">,</span>
232+
<span class="n"><a href="../iterator/sized_sentinel_for.html">sized_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>
233+
<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>
234+
<span class="n"><a href="../iterator/indirect_unary_predicate.html">indirect_unary_predicate</a></span><span class="o">&lt;</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;&gt;</span> <span class="n">Pred</span><span class="o">&gt;</span>
235+
<span class="kt">bool</span> <span class="n">all_of</span><span class="p">(</span><span class="n">Ep</span><span class="o">&amp;&amp;</span> <span class="n">exec</span><span class="p">,</span>
236+
<span class="n">I</span> <span class="n">first</span><span class="p">,</span>
237+
<span class="n">S</span> <span class="n">last</span><span class="p">,</span>
238+
<span class="n">Pred</span> <span class="n">pred</span><span class="p">,</span>
239+
<span class="n">Proj</span> <span class="n">proj</span> <span class="o">=</span> <span class="p">{});</span> <span class="c1">// (3) C++26</span>
240+
241+
<span class="k">template</span> <span class="o">&lt;</span><span class="n"><a href="../execution/execution-policy.html">execution-policy</a></span> <span class="n">Ep</span><span class="p">,</span>
242+
<span class="n"><a href="../ranges/sized-random-access-range.html">sized-random-access-range</a></span> <span class="n">R</span><span class="p">,</span>
243+
<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>
244+
<span class="n"><a href="../iterator/indirect_unary_predicate.html">indirect_unary_predicate</a></span><span class="o">&lt;</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;&gt;</span> <span class="n">Pred</span><span class="o">&gt;</span>
245+
<span class="kt">bool</span> <span class="n">all_of</span><span class="p">(</span><span class="n">Ep</span><span class="o">&amp;&amp;</span> <span class="n">exec</span><span class="p">,</span>
246+
<span class="n">R</span><span class="o">&amp;&amp;</span> <span class="n">r</span><span class="p">,</span>
247+
<span class="n">Pred</span> <span class="n">pred</span><span class="p">,</span>
248+
<span class="n">Proj</span> <span class="n">proj</span> <span class="o">=</span> <span class="p">{});</span> <span class="c1">// (4) C++26</span>
229249
<span class="p">}</span>
230250
</code></pre></div>
231251
</p>
@@ -234,6 +254,8 @@ <h2>概要</h2>
234254
<ul>
235255
<li>(1): <a class="cpprefjp-defined-word" data-desc="2つのイテレータで表現される半開区間を表す。C++20からイテレータと番兵で異なる型であっても指定可能になる">イテレータ範囲</a>を指定する</li>
236256
<li>(2): Rangeを直接指定する</li>
257+
<li>(3): (1)の並列アルゴリズム版。実行ポリシーを指定する</li>
258+
<li>(4): (2)の並列アルゴリズム版。実行ポリシーを指定する</li>
237259
</ul>
238260
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Constraints。関数であればオーバーロード解決に参加するための条件、それ以外であれば受け付ける型の条件">テンプレートパラメータ制約</a></h2>
239261
<ul>
@@ -254,6 +276,7 @@ <h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価
254276
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Complexity。関数が使うアルゴリズムの空間計算量・時間計算量">計算量</a></h2>
255277
<p>最大で <code>last - first</code><code>proj</code><code>pred</code> を実行する。</p>
256278
<h2></h2>
279+
<h3>基本的な使い方</h3>
257280
<p><div class="yata" id="d7a8449db5c7e1cf04f00bf6a5c909323cc89246"><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>
258281
<span class="cp">#include</span> <span class="cpf"><a href="../iostream.html">&lt;iostream&gt;</a></span><span class="cp"></span>
259282
<span class="cp">#include</span> <span class="cpf"><a href="../array.html">&lt;array&gt;</a></span><span class="cp"></span>
@@ -273,10 +296,31 @@ <h2>例</h2>
273296
<span class="p">}</span>
274297
</code></pre></div>
275298
</div></p>
276-
<h3>出力</h3>
299+
<h4>出力</h4>
277300
<p><pre><code>true
278301
false
279302
</code></pre></p>
303+
<h3>並列アルゴリズムの例 (C++26)</h3>
304+
<p><div class="yata" id="aad9b7428c5763925df78e611e33dd064823d892"><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>
305+
<span class="cp">#include</span> <span class="cpf"><a href="../execution.html">&lt;execution&gt;</a></span><span class="cp"></span>
306+
<span class="cp">#include</span> <span class="cpf"><a href="../iostream.html">&lt;iostream&gt;</a></span><span class="cp"></span>
307+
<span class="cp">#include</span> <span class="cpf"><a href="../vector.html">&lt;vector&gt;</a></span><span class="cp"></span>
308+
309+
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
310+
<span class="n"><a href="../vector/vector.html">std::vector</a></span><span class="o">&lt;</span><span class="kt">int</span><span class="o">&gt;</span> <span class="n">v</span> <span class="o">=</span> <span class="p">{</span><span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">10</span><span class="p">};</span>
311+
312+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ios/boolalpha.html">std::boolalpha</a></span><span class="p">;</span>
313+
314+
<span class="c1">// 並列に全ての要素が偶数であるかを判定</span>
315+
<span class="kt">bool</span> <span class="n">result</span> <span class="o">=</span> <span class="n"><span style="color:#ff0000">std::ranges::all_of</span></span><span class="p">(</span><span class="n"><a href="../execution/execution/execution_policy.html">std::execution::par</a></span><span class="p">,</span> <span class="n">v</span><span class="p">,</span>
316+
<span class="p">[](</span><span class="kt">int</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="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span><span class="p">;</span> <span class="p">});</span>
317+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="n">result</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
318+
<span class="p">}</span>
319+
</code></pre></div>
320+
</div></p>
321+
<h4>出力</h4>
322+
<p><pre><code>true
323+
</code></pre></p>
280324
<h2>実装例</h2>
281325
<p><div class="codehilite"><pre><span></span><code><span class="k">struct</span> <span class="n">all_of_impl</span> <span class="p">{</span>
282326
<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">Proj</span> <span class="o">=</span> <span class="n"><a href="../functional/identity.html">identity</a></span><span class="p">,</span> <span class="n"><a href="../iterator/indirect_unary_predicate.html">indirect_unary_predicate</a></span><span class="o">&lt;</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;&gt;</span> <span class="n">Pred</span><span class="o">&gt;</span>
@@ -316,6 +360,7 @@ <h2>関連項目</h2>
316360
<h2>参照</h2>
317361
<ul>
318362
<li><a href="https://timsong-cpp.github.io/cppwp/n4861/algorithms" target="_blank">N4861 25 Algorithms library</a></li>
363+
<li><a href="https://open-std.org/jtc1/sc22/wg21/docs/papers/2025/p3179r9.html" target="_blank">P3179R9 C++ parallel range algorithms</a></li>
319364
</ul></div>
320365

321366
</div>

0 commit comments

Comments
 (0)