std::unordered_multiset::bucket_size
#include <unordered_set>
size_type bucket_size(size_type n) const;
Trả về số lượng phần tử hiện có trong một bucket cụ thể.
Tham số
n
- Chỉ số của bucket cần truy vấn. Chỉ số này phải nằm trong khoảng từ 0 đến
bucket_count() - 1
.
Giá trị trả về
size_type
- Trả về số lượng phần tử hiện có trong bucket thứ n.
Đặc điểm
- Truy vấn số phần tử trong bucket:
bucket_size()
cho phép bạn lấy số lượng phần tử trong một bucket cụ thể dựa trên chỉ số của bucket đó. - const:
bucket_size()
là một hàmconst
, nghĩa là nó không thay đổi trạng thái của std::unordered_multiset. - Phụ thuộc vào hash function và load factor: Số lượng phần tử trong mỗi bucket phụ thuộc vào hàm băm (hash function) được sử dụng bởi std::unordered_multiset và hệ số tải (load factor) hiện tại.
- Ít khi sử dụng trực tiếp: Trong hầu hết các trường hợp, bạn không cần phải quan tâm đến số lượng phần tử trong từng bucket. Tuy nhiên, thông tin này có thể hữu ích cho việc phân tích hiệu suất và gỡ lỗi liên quan đến bảng băm.
- Hành vi không xác định nếu n không hợp lệ: Nếu n không nằm trong khoảng từ 0 đến
bucket_count() - 1
, hành vi là không xác định. - Độ phức tạp: Độ phức tạp của
bucket_size()
làO(n)
trong trường hợp xấu nhất, với n là số phần tử trong bucket đó. Tuy nhiên, trung bình làO(1)
nếu hash function được thiết kế tốt và số lượng phần tử trong mỗi bucket không quá lớn.
Ví dụ
#include <iostream>
#include <unordered_set>
#include <string>
int main() {
std::unordered_multiset<std::string> myumset = {"apple", "banana", "orange", "grape", "kiwi", "apple"};
// Lấy số lượng bucket hiện tại
unsigned nbuckets = myumset.bucket_count();
std::cout << "myumset has " << nbuckets << " buckets:\n";
// In ra số phần tử của từng bucket
for (unsigned i = 0; i < nbuckets; ++i) {
std::cout << "Bucket " << i << " has " << myumset.bucket_size(i) << " elements.\n";
}
return 0;
}
Các hàm liên quan
bucket_count | Trả về số lượng bucket (hay còn gọi là giỏ) hiện tại trong std::unordered_multiset |
bucket | Trả về chỉ số của bucket mà phần tử có key bằng với giá trị key cho trước được lưu trữ |
size | Trả về số lượng phần tử hiện có trong std::unordered_multiset |