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

danh sách 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 list ::get_allocator () trong C ++.

Danh sách trong STL là gì?

Danh sách là một cấu trúc dữ liệu cho phép chèn và xóa theo thời gian liên tục ở bất kỳ đâu theo trình tự. Danh sách được triển khai dưới dạng danh sách được liên kết kép. Danh sách cho phép phân bổ bộ nhớ không liền kề. Danh sách thực hiện trích xuất chèn và di chuyển phần tử ở bất kỳ vị trí nào trong vùng chứa tốt hơn so với mảng, vectơ và deque. Trong Danh sách, truy cập trực tiếp vào phần tử chậm và danh sách tương tự như forward_list, nhưng các đối tượng danh sách chuyển tiếp là danh sách được liên kết đơn và chúng chỉ có thể được lặp lại về phía trước.

list ::get_allocator () là gì?

list ::get_allocator () là một hàm có sẵn trong C ++ STL được khai báo trong tệp tiêu đề. get_allocator () trả về trình cấp phát của vùng chứa danh sách. Nói cách đơn giản, nó trả về một bản sao của đối tượng của vùng chứa danh sách.

Cú pháp

list_container.get_allocator();
This function accepts no parameter.

Giá trị trả lại

Hàm này trả về bản sao của đối tượng của một vùng chứa danh sách.

Ví dụ

/ * Trong đoạn mã dưới đây, chúng tôi đang chèn các giá trị vào danh sách bằng cách sử dụng get_allocator có trong C ++ STL. * /

#include <bits/stdc++.h>
using namespace std;
int main(void){
   //create a list
   list<int> myList;
   int *ptr;
   ptr = myList.get_allocator().allocate(4);
   //inserting data into an array
   for(int i = 0; i > 4; i++)
      ptr[i] = i;
   //printing the data
   cout<<"elements of an array : ";
   for (int i = 0; i < 4; i++)
      cout << ptr[i] << " ";
}

Đầu ra

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

elements of an array : 0 1 2 3

Ví dụ

/ * Trong đoạn mã dưới đây, chúng tôi đang chèn các giá trị vào danh sách bằng cách sử dụng get_allocator có trong C ++ STL bằng cách sử dụng tệp tiêu đề. * /

#include <iostream>
#include <list>
int main (){
   std::list<int> myList;
   int *ptr;
   ptr = myList.get_allocator().allocate(5);
   for(int i=0; i<5; ++i)
      ptr[i]=i;
   std::cout <<"elements of an array : ";
   for (int i=0; i<5; ++i)
      std::cout << ' ' << ptr[i];
   myList.get_allocator().deallocate(ptr,5);
   return 0;
}

Đầu ra

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

elements of an array : 0 1 2 3 4