Chuyển tới nội dung chính

std::count

#include <algorithm>

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

Đếm số lần xuất hiện của một giá trị cụ thể trong một phạm vi (range) được chỉ định.

Tham số

first

  • Input Iterator trỏ đến phần tử đầu tiên trong phạm vi cần đếm.

last

  • Input Iterator trỏ đến phần tử ngay sau phần tử cuối cùng trong phạm vi cần đếm. Phạm vi bao gồm từ first đến last nhưng không bao gồm last ([first, last)).

val

  • Giá trị cần đếm số lần xuất hiện trong phạm vi.

Giá trị trả về

  • Số lần xuất hiện của giá trị val trong phạm vi [first, last). Kiểu trả về là iterator_traits<InputIterator>::difference_type, thường là một kiểu số nguyên (như ptrdiff_t) đủ lớn để chứa số lượng phần tử trong phạm vi.

Đặc điểm

  1. count() đếm tất cả các lần xuất hiện của giá trị, không phân biệt vị trí.
  2. Phạm vi [first, last) là "nửa mở", không bao gồm phần tử last.
  3. count() sử dụng toán tử == để so sánh các phần tử với giá trị cần đếm. Đối với các kiểu dữ liệu tự định nghĩa, bạn cần đảm bảo đã nạp chồng toán tử == cho kiểu dữ liệu đó.
  4. Để đếm số phần tử thỏa mãn một điều kiện khác (không phải so sánh bằng), bạn có thể sử dụng hàm count_if() (tương tự như find_if(), sẽ được đề cập sau nếu bạn cần).
  5. count() thường được sử dụng để đếm số lượng phần tử có giá trị cụ thể trong một container (như vector, array, list, string, ...).

Ví dụ

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>

int main() {
std::vector<int> numbers = {1, 2, 3, 4, 2, 2, 5, 2};

// Đếm số lần xuất hiện của số 2
int countOf2 = std::count(numbers.begin(), numbers.end(), 2);
std::cout << "Number 2 appears " << countOf2 << " times.\n";

std::string text = "This is a sample string with some repeated characters.";

// Đếm số lần xuất hiện của ký tự 's'
int countOfs = std::count(text.begin(), text.end(), 's');
std::cout << "Character 's' appears " << countOfs << " times.\n";

return 0;
}

Các hàm liên quan

for_eachÁp dụng một hàm (hoặc đối tượng hàm) cho mỗi phần tử trong một phạm vi được chỉ định
count_ifĐếm số lượng phần tử trong một phạm vi thỏa mãn một điều kiện cụ thể được xác định bởi một hàm vị từ
findTìm kiếm phần tử đầu tiên trong một phạm vi có giá trị bằng với một giá trị cho trước
replaceThay thế tất cả các lần xuất hiện của một giá trị cũ bằng một giá trị mới trong một phạm vi