ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน multimap::get_allocator() ใน C++ STL
มัลติแมปใน C++ STL คืออะไร
Multimaps เป็นคอนเทนเนอร์ที่เชื่อมโยงกัน ซึ่งคล้ายกับคอนเทนเนอร์แผนที่ นอกจากนี้ยังอำนวยความสะดวกในการจัดเก็บองค์ประกอบที่เกิดจากการรวมกันของคีย์-ค่าและค่าที่แมปในลำดับเฉพาะ ในคอนเทนเนอร์แบบหลายแผนที่ อาจมีองค์ประกอบหลายรายการที่เชื่อมโยงกับคีย์เดียวกัน ข้อมูลจะถูกจัดเรียงภายในเสมอโดยใช้คีย์ที่เกี่ยวข้อง
มัลติแมป::get_allocator() คืออะไร
ฟังก์ชัน multimap::get_allocator() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
ตัวจัดสรรคืออ็อบเจ็กต์ที่รับผิดชอบการจัดสรรหน่วยความจำแบบไดนามิกของคอนเทนเนอร์
ไวยากรณ์
multi_name.get_allocator();
พารามิเตอร์
ฟังก์ชันไม่รับพารามิเตอร์
คืนค่า
ฟังก์ชันนี้จะคืนค่าตัวจัดสรรของคอนเทนเนอร์ที่เกี่ยวข้อง
ป้อนข้อมูล
int *Ptr; std::multimap<int> newmap; newmap.insert(make_pair(‘A’, 22)); newmap.insert(make_pair(‘B’, 78)); newmap.insert(make_pair(‘C’, 66)); newmap.insert(make_pair(‘D’, 81)); Ptr = mymap.get_allocator().allocate(4);
ผลผลิต
ptr = A:22 B:78 C:66 D:81
ตัวอย่าง
#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); // assign some values to array arrsize = sizeof(multimap<char, int>::value_type) * 10; cout << "Size of the allocated array is: "<< arrsize << " bytes.\n"; mul.get_allocator().deallocate(pr, 5); return 0; }
ผลลัพธ์
ถ้าเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Size of the allocated array is: 80 bytes.
ตัวอย่าง
#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); // assign some values to array arrsize = sizeof(multimap<char, int>::value_type) * 5; cout << "Size of the allocated array is: "<< arrsize << " bytes.\n"; mul.get_allocator().deallocate(pr, 5); return 0; }
ผลลัพธ์
ถ้าเรารันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Size of the allocated array is: 40 bytes.