Trong bài viết này, chúng ta sẽ thảo luận về cách hoạt động, cú pháp và các ví dụ của hàm multimap::get_allocator() trong C++ STL.
Multimap trong C++ STL là gì?
Multimap là container liên kết, tương tự như map. Nó lưu trữ các phần tử dạng cặp key-value theo thứ tự cụ thể. Multimap cho phép nhiều phần tử có cùng một key. Dữ liệu luôn được sắp xếp theo key.
Hàm multimap::get_allocator() là gì?
multimap::get_allocator() là hàm built-in trong C++ STL, được định nghĩa trong header <map>. Hàm này trả về một bản sao của đối tượng allocator (bộ phân phối bộ nhớ) của container multimap liên kết.
Allocator là đối tượng chịu trách nhiệm cấp phát bộ nhớ động cho container.
Cú pháp
multi_name.get_allocator();
Tham số
Hàm này không nhận tham số nào.
Giá trị trả về
Trả về allocator của container liên kết.
Ví dụ minh họa 1
#include <iostream>
#include <map>
using namespace std;
int main() {
int arrsize;
multimap<char, int> mul;
pair<const char, int>* pr;
pr = mul.get_allocator().allocate(15);
// Gán giá trị cho mảng
arrsize = sizeof(multimap<char, int>::value_type) * 10;
cout << "Kích thước mảng đã cấp phát: " << arrsize << " bytes.\n";
mul.get_allocator().deallocate(pr, 5);
return 0;
}
Kết quả
Kích thước mảng đã cấp phát: 80 bytes.
Ví dụ minh họa 2
#include <iostream>
#include <map>
using namespace std;
int main() {
int arrsize;
multimap<char, int> mul;
pair<const char, int>* pr;
pr = mul.get_allocator().allocate(2);
arrsize = sizeof(multimap<char, int>::value_type) * 5;
cout << "Kích thước mảng đã cấp phát: " << arrsize << " bytes.\n";
mul.get_allocator().deallocate(pr, 5);
return 0;
}
Kết quả
Kích thước mảng đã cấp phát: 40 bytes.