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
đếnlast
nhưng không bao gồmlast
([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
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í.- Phạm vi
[first, last)
là "nửa mở", không bao gồm phần tửlast
. 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 đó.- Để đế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). 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ừ |
find | Tì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 |
replace | Thay 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 |