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ùngm.count(key)để đếm số phần tử có khóa cụ thể.empty()tương đươngsize() == 0– đọc code rõ nghĩa hơn.reserve(n)chỉ ảnh hưởng bucket count, không thay đổisize().
Các hàm liên quan
| Hàm | Chứ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 |