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

Đặt get_allocator () trong C ++ STL

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

Đặt trong C ++ STL là gì?

Các bộ trong C ++ STL là các bộ chứa phải có các phần tử duy nhất theo thứ tự chung. Tập hợp phải có các phần tử duy nhất vì giá trị của phần tử xác định phần tử. Sau khi đã thêm một giá trị trong vùng chứa đã đặt thì không thể sửa đổi được, mặc dù chúng tôi vẫn có thể xóa hoặc thêm các giá trị vào tập hợp. Các tập hợp được sử dụng làm cây tìm kiếm nhị phân.

Set ::get_allocator () là gì?

Hàm get_allocator () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . Hàm này trả về một bản sao của đối tượng cấp phát của bộ chứa được liên kết với nó. get_allocator () được sử dụng để cấp phát các phần bộ nhớ cho một vùng chứa đã đặt.

Allocator là một đối tượng chịu trách nhiệm cấp phát bộ nhớ động của một vùng chứa đã đặt.

Cú pháp

Set1.get_allocator();

Tham số

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

Giá trị trả về

Hàm này trả về trình cấp phát hoặc bản sao của trình cấp phát có đối tượng được liên kết với hàm.

Ví dụ

#include <iostream>
#include <set>
using namespace std;
void input(int* arr){
   for(int i = 0; i <= 5; i++)
   arr[i] = i;
}
void output(int* arr){
   for (int i = 0; i <= 5; i++)
   cout << arr[i] << " ";
   cout << endl;
}
int main(){
   set<int> mySet;
   int* arr;
   arr = mySet.get_allocator().allocate(6);
   input(arr);
   output(arr);
   mySet.get_allocator().deallocate(arr, 6);
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên thì nó sẽ tạo ra kết quả sau -

0 1 2 3 4 5