std::unordered_set::get_allocator
#include <unordered_set>
allocator_type get_allocator() const noexcept;
Trả về một bản sao của bộ cấp phát (allocator) được liên kết với std::unordered_set. Bộ cấp phát này được sử dụng để quản lý việc cấp phát và giải phóng bộ nhớ cho các phần tử của std::unordered_set.
Tham số
Không có tham số
Giá trị trả về
allocator_type
- Trả về một bản sao của bộ cấp phát (allocator) được liên kết với std::unordered_set.
allocator_type
thường làstd::allocator<T>
, vớiT
là kiểu phần tử của std::unordered_set.
Đặc điểm
- noexcept:
get_allocator()
được đánh dấu lànoexcept
, nghĩa là nó được đảm bảo không ném ra ngoại lệ nào. - const:
get_allocator()
là một hàmconst
, nghĩa là nó không thay đổi trạng thái của std::unordered_set. - Trả về bản sao:
get_allocator()
trả về một bản sao của bộ cấp phát, vì vậy các thay đổi đối với bộ cấp phát trả về sẽ không ảnh hưởng đến bộ cấp phát được sử dụng bởi std::unordered_set. - Í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 sử dụng
get_allocator()
trực tiếp. std::unordered_set tự động quản lý việc cấp phát và giải phóng bộ nhớ cho các phần tử của nó. - Sử dụng cho các trường hợp đặc biệt:
get_allocator()
hữu ích trong các trường hợp bạn cần can thiệp sâu hơn vào việc quản lý bộ nhớ, chẳng hạn như khi bạn muốn sử dụng bộ cấp phát tùy chỉnh hoặc khi bạn muốn cấp phát bộ nhớ cho các đối tượng có liên quan đến std::unordered_set nhưng không phải là phần tử của std::unordered_set.
Ví dụ
#include <iostream>
#include <unordered_set>
#include <memory>
int main() {
std::unordered_set<int> myset;
// Lấy bộ cấp phát của unordered_set
std::allocator<int> alloc = myset.get_allocator();
// Cấp phát bộ nhớ cho một số nguyên sử dụng bộ cấp phát của unordered_set
int* p = alloc.allocate(1);
// Khởi tạo giá trị cho số nguyên vừa cấp phát
alloc.construct(p, 10);
// In ra giá trị
std::cout << "Value: " << *p << '\n'; // Output: Value: 10
// Hủy đối tượng và giải phóng bộ nhớ
alloc.destroy(p);
alloc.deallocate(p, 1);
return 0;
}
Các hàm liên quan
hash_function | Trả về một bản sao của hàm băm đang được sử dụng bởi std::unordered_set |
key_eq | Trả về một bản sao của hàm so sánh bằng được sử dụng bởi std::unordered_set để kiểm tra xem hai key có bằng nhau hay không |