Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm unordered_multimap::size() trong C++ STL

unordered_multimap::size() trả về số lượng phần tử (element count) hiện có trong container – tức tổng số cặp key-value (bao gồm cả khóa trùng).

Đặc điểm

  • Trả về size_type (thường là size_t).
  • Thời gian O(1) – chỉ đọc biến đếm nội bộ.
  • Không tham số, không ném exception.

Ví dụ

#include <iostream>
#include <unordered_map>
using namespace std;

int main() {
    unordered_multimap<char, int> m;
    m.reserve(6); // gợi ý bucket count

    m.emplace('b', 10);
    m.emplace('a', 20);
    m.emplace('a', 30); // khóa 'a' trùng – multimap cho phép

    cout << "Size: " << m.size() << endl; // 3
    cout << "Elements:\n";
    for (auto& p : m) cout << "{" << p.first << "," << p.second << "} ";
    cout << endl;

    return 0;
}

Kết quả

Size: 3
Elements:
{b,10} {a,20} {a,30}

Lưu ý

  • size() đếm tổng phần tử, không phải số khóa duy nhất. Dùng m.count(key) để đếm số phần tử có khóa cụ thể.
  • empty() tương đương size() == 0 – đọc code rõ nghĩa hơn.
  • reserve(n) chỉ ảnh hưởng bucket count, không thay đổi size().

Các hàm liên quan

HàmChức năng
size()Số phần tử
max_size()Số phần tử tối đa lý thuyết
empty()Kiểm tra rỗng
bucket_count()Số bucket hiện tại
load_factor()size() / bucket_count()
max_load_factor()Ngưỡng tự động rehash
reserve(n)Đảm bảo bucket đủ cho n phần tử
rehash(n)Buộc bucket count ≥ n