Skip to content

Commit 18a48ea

Browse files
author
cpprefjp-autoupdate
committed
update automatically
1 parent 3a43b0f commit 18a48ea

File tree

6 files changed

+1057
-2326
lines changed

6 files changed

+1057
-2326
lines changed

reference/algorithm/count.html

Lines changed: 75 additions & 11 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&#34;], &#34;id-type&#34;: [&#34;function template&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;3b954bfc9015dfb5654468268e8c91b95498c055&#34;, &#34;source&#34;: &#34;#include &lt;algorithm&gt;\n#include &lt;iostream&gt;\n#include &lt;vector&gt;\n\nint main() {\n std::vector&lt;int&gt; v = { 1,4,3,3,1,2,2,1 };\n\n // \u5024\u304c 1 \u306e\u8981\u7d20\u304c\u3044\u304f\u3064\u3042\u308b\u304b\u3092\u6570\u3048\u308b\n std::cout &lt;&lt; \&#34;count of 1: \&#34; &lt;&lt; std::count(v.begin(), v.end(), 1) &lt;&lt; std::endl;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;algorithm&#34;, &#34;count&#34;]}">
71+
<header data-kunai-mdinfo="{&#34;meta&#34;: {&#34;header&#34;: [&#34;algorithm&#34;], &#34;namespace&#34;: [&#34;std&#34;], &#34;id-type&#34;: [&#34;function template&#34;]}, &#34;sources&#34;: [{&#34;id&#34;: &#34;070a0f1ba50fd9009284a039a7b1bd823f7d4616&#34;, &#34;source&#34;: &#34;#include &lt;algorithm&gt;\n#include &lt;iostream&gt;\n#include &lt;vector&gt;\n\nint main() {\n std::vector&lt;int&gt; v = { 1,4,3,3,1,2,2,1 };\n\n // \u5024\u304c 1 \u306e\u8981\u7d20\u304c\u3044\u304f\u3064\u3042\u308b\u304b\u3092\u6570\u3048\u308b\n int n = std::count(v.begin(), v.end(), 1);\n std::cout &lt;&lt; \&#34;count of 1: \&#34; &lt;&lt; n &lt;&lt; std::endl;\n}\n&#34;}, {&#34;id&#34;: &#34;be51ce49eacaac914463050bb9697b23dd9d5000&#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 {1, 2},\n };\n\n // \u5024\u304c {1, 2} \u306e\u8981\u7d20\u304c\u3044\u304f\u3064\u3042\u308b\u304b\u3092\u6570\u3048\u308b\n int n = std::count(v.begin(), v.end(), {1, 2});\n std::cout &lt;&lt; \&#34;count of {1,2}: \&#34; &lt;&lt; n &lt;&lt; std::endl;\n}\n&#34;}], &#34;page_id&#34;: [&#34;reference&#34;, &#34;algorithm&#34;, &#34;count&#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-04-04T14:01:39">
192-
2025年04月04日 14時01分39秒
191+
<span itemprop="datePublished" content="2025-05-26T06:59:52">
192+
2025年05月26日 06時59分52秒
193193
</span>
194194
<br/>
195195
<span itemprop="author" itemscope itemtype="http://schema.org/Person">
196-
<span itemprop="name">rotarymars</span>
196+
<span itemprop="name">Akira Takahashi</span>
197197
</span>
198198
が更新
199199
</small></p>
@@ -214,24 +214,41 @@
214214

215215
<div class="identifier-type">function template</div><div class="header">&lt;algorithm&gt;</div><h1 itemprop="name"><span class="namespace" title="namespace std">std::</span><span class="token">count</span></h1>
216216
<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>
217-
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">InputIterator</span><span class="p">,</span> <span class="k">class</span> <span class="nc">T</span><span class="o">&gt;</span>
217+
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">InputIterator</span><span class="p">,</span>
218+
<span class="k">class</span> <span class="nc">T</span><span class="o">&gt;</span>
218219
<span class="k">typename</span> <span class="n"><a href="../iterator/iterator_traits.html">iterator_traits</a></span><span class="o">&lt;</span><span class="n">InputIterator</span><span class="o">&gt;::</span><span class="n">difference_type</span>
219220
<span class="n">count</span><span class="p">(</span><span class="n">InputIterator</span> <span class="n">first</span><span class="p">,</span>
220221
<span class="n">InputIterator</span> <span class="n">last</span><span class="p">,</span>
221222
<span class="k">const</span> <span class="n">T</span><span class="o">&amp;</span> <span class="n">value</span><span class="p">);</span> <span class="c1">// (1) C++03</span>
222-
223-
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">InputIterator</span><span class="p">,</span> <span class="k">class</span> <span class="nc">T</span><span class="o">&gt;</span>
223+
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">InputIterator</span><span class="p">,</span>
224+
<span class="k">class</span> <span class="nc">T</span><span class="o">&gt;</span>
224225
<span class="k">constexpr</span> <span class="k">typename</span> <span class="n"><a href="../iterator/iterator_traits.html">iterator_traits</a></span><span class="o">&lt;</span><span class="n">InputIterator</span><span class="o">&gt;::</span><span class="n">difference_type</span>
225226
<span class="n">count</span><span class="p">(</span><span class="n">InputIterator</span> <span class="n">first</span><span class="p">,</span>
226227
<span class="n">InputIterator</span> <span class="n">last</span><span class="p">,</span>
227228
<span class="k">const</span> <span class="n">T</span><span class="o">&amp;</span> <span class="n">value</span><span class="p">);</span> <span class="c1">// (1) C++20</span>
229+
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">InputIterator</span><span class="p">,</span>
230+
<span class="k">class</span> <span class="nc">T</span> <span class="o">=</span> <span class="k">typename</span> <span class="n"><a href="../iterator/iterator_traits.html">iterator_traits</a></span><span class="o">&lt;</span><span class="n">InputIterator</span><span class="o">&gt;::</span><span class="n">value_type</span><span class="o">&gt;</span>
231+
<span class="k">constexpr</span> <span class="k">typename</span> <span class="n"><a href="../iterator/iterator_traits.html">iterator_traits</a></span><span class="o">&lt;</span><span class="n">InputIterator</span><span class="o">&gt;::</span><span class="n">difference_type</span>
232+
<span class="n">count</span><span class="p">(</span><span class="n">InputIterator</span> <span class="n">first</span><span class="p">,</span>
233+
<span class="n">InputIterator</span> <span class="n">last</span><span class="p">,</span>
234+
<span class="k">const</span> <span class="n">T</span><span class="o">&amp;</span> <span class="n">value</span><span class="p">);</span> <span class="c1">// (1) C++26</span>
228235

229-
<span class="k">template</span><span class="o">&lt;</span><span class="k">class</span> <span class="nc"><a href="../execution/execution/execution_policy.html">ExecutionPolicy</a></span><span class="p">,</span> <span class="k">class</span> <span class="nc">ForwardIterator</span><span class="p">,</span> <span class="k">class</span> <span class="nc">T</span><span class="o">&gt;</span>
236+
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc"><a href="../execution/execution/execution_policy.html">ExecutionPolicy</a></span><span class="p">,</span>
237+
<span class="k">class</span> <span class="nc">ForwardIterator</span><span class="p">,</span>
238+
<span class="k">class</span> <span class="nc">T</span><span class="o">&gt;</span>
230239
<span class="k">typename</span> <span class="n"><a href="../iterator/iterator_traits.html">iterator_traits</a></span><span class="o">&lt;</span><span class="n">ForwardIterator</span><span class="o">&gt;::</span><span class="n">difference_type</span>
231240
<span class="n">count</span><span class="p">(</span><span class="n"><a href="../execution/execution/execution_policy.html">ExecutionPolicy</a></span><span class="o">&amp;&amp;</span> <span class="n">exec</span><span class="p">,</span>
232241
<span class="n">ForwardIterator</span> <span class="n">first</span><span class="p">,</span>
233242
<span class="n">ForwardIterator</span> <span class="n">last</span><span class="p">,</span>
234243
<span class="k">const</span> <span class="n">T</span><span class="o">&amp;</span> <span class="n">value</span><span class="p">);</span> <span class="c1">// (2) C++17</span>
244+
<span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc"><a href="../execution/execution/execution_policy.html">ExecutionPolicy</a></span><span class="p">,</span>
245+
<span class="k">class</span> <span class="nc">ForwardIterator</span><span class="p">,</span>
246+
<span class="k">class</span> <span class="nc">T</span> <span class="o">=</span> <span class="k">typename</span> <span class="n"><a href="../iterator/iterator_traits.html">iterator_traits</a></span><span class="o">&lt;</span><span class="n">ForwardIterator</span><span class="o">&gt;::</span><span class="n">value_type</span><span class="o">&gt;</span>
247+
<span class="k">typename</span> <span class="n"><a href="../iterator/iterator_traits.html">iterator_traits</a></span><span class="o">&lt;</span><span class="n">ForwardIterator</span><span class="o">&gt;::</span><span class="n">difference_type</span>
248+
<span class="n">count</span><span class="p">(</span><span class="n"><a href="../execution/execution/execution_policy.html">ExecutionPolicy</a></span><span class="o">&amp;&amp;</span> <span class="n">exec</span><span class="p">,</span>
249+
<span class="n">ForwardIterator</span> <span class="n">first</span><span class="p">,</span>
250+
<span class="n">ForwardIterator</span> <span class="n">last</span><span class="p">,</span>
251+
<span class="k">const</span> <span class="n">T</span><span class="o">&amp;</span> <span class="n">value</span><span class="p">);</span> <span class="c1">// (2) C++16</span>
235252
<span class="p">}</span>
236253
</code></pre></div>
237254
</p>
@@ -241,22 +258,65 @@ <h2><a class="cpprefjp-defined-word" data-desc="関数呼び出し式の評価
241258
<p><a class="cpprefjp-defined-word" data-desc="2つのイテレータで表現される半開区間を表す。C++20からイテレータと番兵で異なる型であっても指定可能になる">イテレータ範囲</a><code>[first,last)</code> 内のイテレータ <code>i</code> について、<code>*i == value</code> であるイテレータの数を返す</p>
242259
<h2><a class="cpprefjp-defined-word" data-desc="関数等の意味論を構成する要素の1つ。Complexity。関数が使うアルゴリズムの空間計算量・時間計算量">計算量</a></h2>
243260
<p>正確に <code>last - first</code> 回の比較を行う</p>
261+
<h2>備考</h2>
262+
<ul>
263+
<li>(1), (2) :<ul>
264+
<li>C++26 : 引数として波カッコ初期化<code>{}</code>を受け付ける
265+
<br />
266+
<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>
267+
<span class="kt">int</span> <span class="n">n</span> <span class="o">=</span> <span class="n">std</span><span class="o">::</span><span class="n">count</span><span class="p">(</span><span class="n"><a href="../vector/vector/begin.html">v.begin()</a></span><span class="p">,</span> <span class="n"><a href="../vector/vector/begin.html">v.begin()</a></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>
268+
</code></pre></div>
269+
</li>
270+
</ul>
271+
</li>
272+
</ul>
244273
<h2></h2>
245-
<p><div class="yata" id="3b954bfc9015dfb5654468268e8c91b95498c055"><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>
274+
<h3>基本的な使い方</h3>
275+
<p><div class="yata" id="070a0f1ba50fd9009284a039a7b1bd823f7d4616"><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>
246276
<span class="cp">#include</span> <span class="cpf"><a href="../iostream.html">&lt;iostream&gt;</a></span><span class="cp"></span>
247277
<span class="cp">#include</span> <span class="cpf"><a href="../vector.html">&lt;vector&gt;</a></span><span class="cp"></span>
248278

249279
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
250280
<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">1</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</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">2</span><span class="p">,</span><span class="mi">1</span> <span class="p">};</span>
251281

252282
<span class="c1">// 値が 1 の要素がいくつあるかを数える</span>
253-
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="s">"count of 1: "</span> <span class="o">&lt;&lt;</span> <span class="n"><span style="color:#ff0000">std::count</span></span><span class="p">(</span><span class="n"><a href="../vector/vector/begin.html">v.begin()</a></span><span class="p">,</span> <span class="n"><a href="../vector/vector/end.html">v.end()</a></span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
283+
<span class="kt">int</span> <span class="n">n</span> <span class="o">=</span> <span class="n"><span style="color:#ff0000">std::count</span></span><span class="p">(</span><span class="n"><a href="../vector/vector/begin.html">v.begin()</a></span><span class="p">,</span> <span class="n"><a href="../vector/vector/end.html">v.end()</a></span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
284+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="s">"count of 1: "</span> <span class="o">&lt;&lt;</span> <span class="n">n</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
254285
<span class="p">}</span>
255286
</code></pre></div>
256287
</div></p>
257-
<h3>出力</h3>
288+
<h4>出力</h4>
258289
<p><pre><code>count of 1: 3
259290
</code></pre></p>
291+
<h3>波カッコ初期化を入力として使用する (C++26)</h3>
292+
<p><div class="yata" id="be51ce49eacaac914463050bb9697b23dd9d5000"><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>
293+
<span class="cp">#include</span> <span class="cpf"><a href="../iostream.html">&lt;iostream&gt;</a></span><span class="cp"></span>
294+
<span class="cp">#include</span> <span class="cpf"><a href="../vector.html">&lt;vector&gt;</a></span><span class="cp"></span>
295+
296+
<span class="k">struct</span> <span class="n">Point</span> <span class="p">{</span>
297+
<span class="kt">int</span> <span class="n">x</span><span class="p">;</span>
298+
<span class="kt">int</span> <span class="n">y</span><span class="p">;</span>
299+
300+
<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>
301+
<span class="p">};</span>
302+
303+
<span class="kt">int</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
304+
<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>
305+
<span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">},</span>
306+
<span class="p">{</span><span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">},</span>
307+
<span class="p">{</span><span class="mi">5</span><span class="p">,</span> <span class="mi">6</span><span class="p">},</span>
308+
<span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">},</span>
309+
<span class="p">};</span>
310+
311+
<span class="c1">// 値が {1, 2} の要素がいくつあるかを数える</span>
312+
<span class="kt">int</span> <span class="n">n</span> <span class="o">=</span> <span class="n"><span style="color:#ff0000">std::count</span></span><span class="p">(</span><span class="n"><a href="../vector/vector/begin.html">v.begin()</a></span><span class="p">,</span> <span class="n"><a href="../vector/vector/end.html">v.end()</a></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>
313+
<span class="n"><a href="../iostream/cout.html">std::cout</a></span> <span class="o">&lt;&lt;</span> <span class="s">"count of {1,2}: "</span> <span class="o">&lt;&lt;</span> <span class="n">n</span> <span class="o">&lt;&lt;</span> <span class="n"><a href="../ostream/endl.html">std::endl</a></span><span class="p">;</span>
314+
<span class="p">}</span>
315+
</code></pre></div>
316+
</div></p>
317+
<h4>出力</h4>
318+
<p><pre><code>count of {1,2}: 2
319+
</code></pre></p>
260320
<h2>実装例</h2>
261321
<p><div class="codehilite"><pre><span></span><code><span class="k">template</span> <span class="o">&lt;</span><span class="k">class</span> <span class="nc">InputIterator</span><span class="p">,</span> <span class="k">class</span> <span class="nc">T</span><span class="o">&gt;</span>
262322
<span class="k">typename</span> <span class="n"><a href="../iterator/iterator_traits.html">iterator_traits</a></span><span class="o">&lt;</span><span class="n">InputIterator</span><span class="o">&gt;::</span><span class="n">difference_type</span>
@@ -284,6 +344,10 @@ <h2>参照</h2>
284344
<ul>
285345
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0202r3.html" target="_blank">P0202R3 Add Constexpr Modifiers to Functions in <code>&lt;algorithm&gt;</code> and <code>&lt;utility&gt;</code> Headers</a></li>
286346
<li><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0467r2.html" target="_blank">P0467R2 Iterator Concerns for Parallel Algorithms</a></li>
347+
<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>
348+
<li>C++26で波カッコ初期化 (リスト初期化) に対応した</li>
349+
</ul>
350+
</li>
287351
</ul></div>
288352

289353
</div>

0 commit comments

Comments
 (0)