Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

แสดงรายการ get_allocator ใน C ++ STL


ในบทความนี้เราจะพูดถึงการทำงาน ไวยากรณ์และตัวอย่างของฟังก์ชัน list::get_allocator() ใน C++

รายการใน STL คืออะไร

รายการเป็นโครงสร้างข้อมูลที่อนุญาตให้แทรกและลบเวลาคงที่ได้ทุกที่ตามลำดับ รายการถูกนำไปใช้เป็นรายการที่เชื่อมโยงเป็นสองเท่า รายการอนุญาตการจัดสรรหน่วยความจำที่ไม่ต่อเนื่องกัน List ทำการดึงการแทรกและย้ายองค์ประกอบได้ดีกว่าในตำแหน่งใดๆ ในคอนเทนเนอร์ มากกว่าอาร์เรย์ เวกเตอร์ และ deque ใน List การเข้าถึงองค์ประกอบโดยตรงนั้นช้าและ list นั้นคล้ายกับ forward_list แต่ออบเจกต์ของรายการส่งต่อเป็นรายการที่เชื่อมโยงเพียงรายการเดียว และสามารถทำซ้ำได้เพียงส่งต่อเท่านั้น

รายการ::get_allocator() คืออะไร

list::get_allocator() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งประกาศไว้ในไฟล์ส่วนหัว get_allocator() ส่งคืนตัวจัดสรรของคอนเทนเนอร์รายการ กล่าวง่ายๆ ว่าส่งคืนสำเนาของอ็อบเจ็กต์ของคอนเทนเนอร์รายการ

ไวยากรณ์

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

ผลตอบแทนที่ได้รับ

ฟังก์ชันนี้จะคืนค่าสำเนาของวัตถุของคอนเทนเนอร์รายการ

ตัวอย่าง

/*ในโค้ดด้านล่าง เรากำลังแทรกค่าลงในรายการโดยใช้ get_allocator ที่มีอยู่ใน 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] << " ";
}

ผลลัพธ์

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

elements of an array : 0 1 2 3

ตัวอย่าง

/* ในโค้ดด้านล่าง เรากำลังแทรกค่าลงในรายการโดยใช้ get_allocator ที่มีอยู่ใน C++ STL โดยใช้ไฟล์ส่วนหัว */

#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;
}

ผลลัพธ์

หากเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้

elements of an array : 0 1 2 3 4