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

std::multiset::count

#include <set>

size_type count(const key_type& key) const;

Đếm số lượng phần tử có giá trị bằng với giá trị cho trước trong std::multiset.

Tham số

key

  • Giá trị của phần tử cần đếm.

Giá trị trả về

  • Trả về số lượng phần tử có giá trị bằng key.

Đặc điểm

  1. Đếm số lần xuất hiện: count() đếm số lần xuất hiện của một giá trị cụ thể trong std::multiset, không phân biệt vị trí.
  2. const: count() là một hàm const, nghĩa là nó không thay đổi trạng thái của std::multiset.
  3. Phân biệt với find(): find() trả về iterator trỏ đến phần tử đầu tiên tìm thấy (hoặc end() nếu không tìm thấy), trong khi count() trả về số lần xuất hiện của giá trị đó.
  4. Không ném ngoại lệ: Hàm count() được quy định không ném ra ngoại lệ.
  5. Trả về số lần xuất hiện: Khác với std::set, std::multiset cho phép các phần tử trùng lặp, do đó count() có thể trả về giá trị lớn hơn 1.
  6. Độ phức tạp: Độ phức tạp của count()O(log n + m), với n là số phần tử trong std::multiset và m là số phần tử có giá trị bằng key.

Ví dụ

#include <iostream>
#include <set>

int main() {
std::multiset<int> mymultiset = {10, 20, 30, 20, 40, 20, 50};

// Đếm số lần xuất hiện của phần tử có giá trị 20
size_type count = mymultiset.count(20);
std::cout << "Element 20 appears " << count << " times in the multiset\n"; // Output: Element 20 appears 3 times in the multiset

// Đếm số lần xuất hiện của phần tử có giá trị 60 (không tồn tại)
count = mymultiset.count(60);
std::cout << "Element 60 appears " << count << " times in the multiset\n"; // Output: Element 60 appears 0 times in the multiset

return 0;
}

Các hàm liên quan

findTìm kiếm một phần tử có giá trị bằng với giá trị cho trước trong std::multiset
equal_rangeTrả về một cặp iterator xác định phạm vi các phần tử trong std::multiset có giá trị bằng với giá trị key cho trước
sizeTrả về số lượng phần tử hiện có trong std::multiset
lower_boundTrả về một iterator trỏ đến phần tử đầu tiên trong std::multiset có giá trị lớn hơn hoặc bằng giá trị key cho trước
upper_boundTrả về một iterator trỏ đến phần tử đầu tiên trong std::multiset có giá trị lớn hơn giá trị key cho trước