모두의 코드
C++ 레퍼런스 - count 함수 (<algorithm>)

작성일 : 2019-02-01

count

<algorithm> 에 정의됨

template <class InputIterator, class T>
typename iterator_traits<InputIterator>::difference_type count(
  InputIterator first, InputIterator last, const T& val);

범위 안의 원소들 중 특정 값의 개수를 센다.

범위 안 (first 부터 last 전 까지) 의 원소들 중 val 과 일치하는 원소들의 개수를 셉니다. 이 때 원소를 비교하기 위해 operator== 를 사용합니다.

인자들

리턴값

val 과 일치하는 원소의 개수를 리턴합니다. 리턴 타입은 iterator_traits<InputIterator>::difference_type 로 보통 부호 있는 정수 타입입니다.

구현 예시

template <class InputIterator, class T>
typename iterator_traits<InputIterator>::difference_type count(
  InputIterator first, InputIterator last, const T& val) {
  typename iterator_traits<InputIterator>::difference_type ret = 0;
  while (first != last) {
    if (*first == val) ++ret;
    ++first;
  }
  return ret;
}

실행 예제

#include <algorithm>  // std::count
#include <iostream>   // std::cout
#include <vector>     // std::vector

int main() {
  // 배열 안의 특정 원소 개수를 셉니다.
  int myints[] = {10, 20, 30, 30, 20, 10, 10, 20};  // 8 elements
  int mycount = std::count(myints, myints + 8, 10);
  std::cout << "10 은 " << mycount << " 번 등장합니다.\n";

  // 컨테이너 안에 특정 원소의 개수를 셉니다.
  std::vector<int> myvector(myints, myints + 8);
  mycount = std::count(myvector.begin(), myvector.end(), 20);
  std::cout << "20 은 " << mycount << " 번 등장합니다.\n";

  return 0;
}

실행 결과

10 은 3 번 등장합니다.
20 은 3 번 등장합니다.

연관된 함수

프로필 사진 없음
댓글에 글쓴이에게 큰 힘이 됩니다