C++ 11
template<class InputIt, class T>
typename std::iterator_traits<InputIt>::difference_type count(InputIt first, InputIt last, const T& value); // constexpr since C++ 20
C++ 17
template<class ExecutionPolicy, class ForwardIt, class T>
typename std::iterator_traits<ForwardIt>::difference_type count(ExecutionPolicy && policy, ForwardIt first, ForwardIt last, const T& value);
: 주어진 범위 내에서 특정 값이 몇 번 나타나는 지 반환합니다.
실행 정책은 std::execution 헤더에 포함되어있습니다.
- execution::seq : 순차 실행 (기본 값)
- execution::par : 병렬 실행 (멀티코어 시스템에서 작업이 병렬로 수행됩니다.)
- execution::par_unseq : 병렬 및 비순차 실행
<example>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
vector<int> vec = {1, 2, 3, 4, 5, 2};
cout << count(vec.begin(), vec.end(), 2);
// vec.begin() : vec의 첫 번째 요소를 가리키는 반복자를 반환합니다.
// vec.end() : vec의 마지막 요소의 뒤를 가리키는 반복자를 반환합니다.
return 0;
}
결과값
C++ 11
template<class InputIt, class UnaryPred>
typename std::iterator_traits<InputIt>::difference_type count(InputIt first, InputIt last, UnaryPred p); // constexpr since C++ 20
C++ 17
template<class ExecutionPolicy, class ForwardIt, class UnaryPred>
typename std::iterator_traits<ForwardIt>::difference_type count(ExecutionPolicy && policy, ForwardIt first, ForwardIt last, UnaryPred p);
: 주어진 범위 내에서 특정 조건을 만족하는 값이 몇 번 나타나는 지 반환합니다.
실행 정책은 std::execution 헤더에 포함되어있습니다.
- execution::seq : 순차 실행 (기본 값)
- execution::par : 병렬 실행 (멀티코어 시스템에서 작업이 병렬로 수행됩니다.)
- execution::par_unseq : 병렬 및 비순차 실행
<example>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
vector<int> vec = {1, 2, 3, 4, 5, 2};
cout << count_if(vec.begin(), vec.end(), [](int x) { return x % 2 == 0; });
return 0;
}
결과값
