6868
6969 </ head >
7070 < body >
71- < header data-kunai-mdinfo ="{"meta": {"header": ["algorithm"], "namespace": ["std"], "id-type": ["function template"]}, "sources": [{"id": "3b954bfc9015dfb5654468268e8c91b95498c055", "source": "#include <algorithm>\n#include <iostream>\n#include <vector>\n\nint main() {\n std::vector<int> 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 << \"count of 1: \" << std::count(v.begin(), v.end(), 1) << std::endl;\n}\n"}], "page_id": ["reference", "algorithm", "count"]} ">
71+ < header data-kunai-mdinfo ="{"meta": {"header": ["algorithm"], "namespace": ["std"], "id-type": ["function template"]}, "sources": [{"id": "070a0f1ba50fd9009284a039a7b1bd823f7d4616", "source": "#include <algorithm>\n#include <iostream>\n#include <vector>\n\nint main() {\n std::vector<int> 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 << \"count of 1: \" << n << std::endl;\n}\n"}, {"id": "be51ce49eacaac914463050bb9697b23dd9d5000", "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 {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 << \"count of {1,2}: \" << n << std::endl;\n}\n"}], "page_id": ["reference", "algorithm", "count"]} ">
7272 < nav class ="navbar navbar-default " role ="navigation ">
7373 < div class ="container-fluid ">
7474 < div class ="navbar-header ">
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 >
214214
215215 < div class ="identifier-type "> function template</ div > < div class ="header "> <algorithm></ 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 "> <</ 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 "> ></ span >
217+ < span class ="k "> template</ span > < span class ="o "> <</ 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 "> ></ span >
218219 < span class ="k "> typename</ span > < span class ="n "> < a href ="../iterator/iterator_traits.html "> iterator_traits</ a > </ span > < span class ="o "> <</ span > < span class ="n "> InputIterator</ span > < span class ="o "> >::</ 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 "> &</ 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 " > < </ 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 "> ></ span >
223+ < span class =" k " > template </ span > < span class =" o " > < </ 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 "> ></ 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 "> <</ span > < span class ="n "> InputIterator</ span > < span class ="o "> >::</ 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 "> &</ 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 "> <</ 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 "> <</ span > < span class ="n "> InputIterator</ span > < span class ="o "> >::</ span > < span class ="n "> value_type</ span > < span class ="o "> ></ 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 "> <</ span > < span class ="n "> InputIterator</ span > < span class ="o "> >::</ 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 "> &</ 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 "> <</ 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 "> ></ span >
236+ < span class ="k "> template</ span > < span class ="o "> <</ 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 "> ></ span >
230239 < span class ="k "> typename</ span > < span class ="n "> < a href ="../iterator/iterator_traits.html "> iterator_traits</ a > </ span > < span class ="o "> <</ span > < span class ="n "> ForwardIterator</ span > < span class ="o "> >::</ 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 "> &&</ 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 "> &</ 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 "> <</ 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 "> <</ span > < span class ="n "> ForwardIterator</ span > < span class ="o "> >::</ span > < span class ="n "> value_type</ span > < span class ="o "> ></ span >
247+ < span class ="k "> typename</ span > < span class ="n "> < a href ="../iterator/iterator_traits.html "> iterator_traits</ a > </ span > < span class ="o "> <</ span > < span class ="n "> ForwardIterator</ span > < span class ="o "> >::</ 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 "> &&</ 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 "> &</ 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 "> <</ span > < span class ="n "> T</ span > < span class ="o "> ></ 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 "> <algorithm></ 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 "> <algorithm></ a > </ span > < span class ="cp "> </ span >
246276< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
247277< span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../vector.html "> <vector></ 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 "> <</ span > < span class ="kt "> int</ span > < span class ="o "> ></ 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 "> <<</ span > < span class ="s "> "count of 1: "</ 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 > < span class ="o "> <<</ 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 "> <<</ span > < span class ="s "> "count of 1: "</ span > < span class ="o "> <<</ span > < span class ="n "> n</ span > < span class ="o "> <<</ 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 "> <algorithm></ a > </ span > < span class ="cp "> </ span >
293+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../iostream.html "> <iostream></ a > </ span > < span class ="cp "> </ span >
294+ < span class ="cp "> #include</ span > < span class ="cpf "> < a href ="../vector.html "> <vector></ 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 "> &</ 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 "> <</ span > < span class ="n "> Point</ span > < span class ="o "> ></ 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 "> <<</ span > < span class ="s "> "count of {1,2}: "</ span > < span class ="o "> <<</ span > < span class ="n "> n</ span > < span class ="o "> <<</ 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 "> <</ 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 "> ></ span >
262322< span class ="k "> typename</ span > < span class ="n "> < a href ="../iterator/iterator_traits.html "> iterator_traits</ a > </ span > < span class ="o "> <</ span > < span class ="n "> InputIterator</ span > < span class ="o "> >::</ 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 > <algorithm></ code > and < code > <utility></ 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