Computer >> Máy Tính >  >> Lập trình >> C ++

bản đồ get_allocator trong C ++ STL

Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và các ví dụ của hàm map ::get_allocator () trong C ++ STL.

Bản đồ trong C ++ STL là gì?

Bản đồ là vùng chứa liên kết, tạo điều kiện để lưu trữ các phần tử được hình thành bởi sự kết hợp trên giá trị chính và giá trị được ánh xạ theo một thứ tự cụ thể. Trong một vùng chứa bản đồ, dữ liệu luôn được sắp xếp nội bộ với sự trợ giúp của các khóa liên quan. Các giá trị trong vùng chứa bản đồ được truy cập bằng các khóa duy nhất của nó.

map ::get_allocator () là gì?

Bản đồ ::get_allocator () là một hàm nằm trong tệp tiêu đề . get_alloctaor () được sử dụng để lấy đối tượng cấp phát được liên kết với vùng chứa bản đồ. Hàm này trả về bản sao của đối tượng cấp phát của bản đồ đã cho.

Cú pháp

map_name.get_allocator(key_value k);

Tham số

Hàm này không chấp nhận tham số

Giá trị trả về

Nó trả về một đối tượng cấp phát của bản đồ.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, int> TP;
   map<int, int>::allocator_type tp = TP.get_allocator();
   cout << "checking Is allocator Pair<int, int> : "<<
   boolalpha << (tp == allocator<pair<int, int> >());
   return 0;
}

Đầu ra

checking Is allocator Pair<int, int> : true

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main(void) {
   map<char, int> TP;
   pair<const char, int>* TP_pair;
   TP_pair = TP.get_allocator().allocate(5);
   cout<<"Size after allocating is: " << sizeof(*TP_pair) * 5 << endl;
   return 0;
}

Đầu ra

Size after allocating is: 40