ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน multimap::crbegin() และ multimap::crend() ใน C++ STL
มัลติแมปใน C++ STL คืออะไร
Multimaps เป็นคอนเทนเนอร์ที่เชื่อมโยงกัน ซึ่งคล้ายกับคอนเทนเนอร์แผนที่ นอกจากนี้ยังอำนวยความสะดวกในการจัดเก็บองค์ประกอบที่เกิดจากการรวมกันของคีย์-ค่าและค่าที่แมปในลำดับเฉพาะ ในคอนเทนเนอร์แบบหลายแผนที่ อาจมีองค์ประกอบหลายรายการที่เชื่อมโยงกับคีย์เดียวกัน ข้อมูลจะถูกจัดเรียงภายในเสมอโดยใช้คีย์ที่เกี่ยวข้อง
multimap::cbegin() คืออะไร
ฟังก์ชัน multimap::crbegin() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
ไวยากรณ์
mutliMap_name.crbegin();
พารามิเตอร์
ฟังก์ชันนี้ไม่ยอมรับพารามิเตอร์ใดๆ
คืนค่า
ฟังก์ชันนี้ส่งคืนตัววนซ้ำซึ่งชี้ไปที่องค์ประกอบสุดท้ายของคอนเทนเนอร์
ป้อนข้อมูล
multimap<char, int> newmap; newmap(make_pair(‘a’, 1)); newmap(make_pair(‘b’, 2)); newmap(make_pair(‘c’, 3)); newmap.crbegin();
ผลลัพธ์
c:3
ตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
int main(){
//create the container
multimap<int, int> mul;
//insert using emplace
mul.emplace_hint(mul.begin(), 1, 10);
mul.emplace_hint(mul.begin(), 2, 20);
mul.emplace_hint(mul.begin(), 2, 30);
mul.emplace_hint(mul.begin(), 1, 40);
mul.emplace_hint(mul.begin(), 1, 50);
mul.emplace_hint(mul.begin(), 5, 60);
auto it = mul.crbegin();
cout<<"Last element using crbegin() is: {"<<it->first<< ", " << it->second << "}\n";
cout <<"\nElements in multimap is : \n";
cout << "KEY\tELEMENT\n";
for (auto i = mul.crbegin(); i!= mul.crend(); i++){
cout << i->first << "\t" << i->second << endl;
}
return 0;
} ผลลัพธ์
หากเราเรียกใช้โค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Last element using crbegin() is: {5, 60}
Elements in multimap is :
KEY ELEMENT
5 60
2 20
2 30
1 10
1 40
1 50 multimap::crend() คืออะไร
ฟังก์ชัน multimap::crend() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
ไวยากรณ์
newmultimap.crend();
พารามิเตอร์
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
คืนค่า
ส่งคืนตัววนซ้ำที่ชี้ไปยังองค์ประกอบแรกก่อนหน้าของคอนเทนเนอร์ที่เกี่ยวข้อง
ป้อนข้อมูล
multimap<char, int&lgt; newmap; newmap(make_pair(‘a’, 1)); newmap(make_pair(‘b’, 2)); newmap(make_pair(‘c’, 3)); newmap.crend();
ผลลัพธ์
error
ตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
int main(){
//create the container
multimap<int, int> mul;
//insert using emplace
mul.emplace_hint(mul.begin(), 1, 10);
mul.emplace_hint(mul.begin(), 2, 20);
mul.emplace_hint(mul.begin(), 2, 30);
mul.emplace_hint(mul.begin(), 1, 40);
mul.emplace_hint(mul.begin(), 1, 50);
mul.emplace_hint(mul.begin(), 5, 60);
cout << "\nElements in multimap is : \n";
cout << "KEY\tELEMENT\n";
for (auto i = mul.crbegin(); i!= mul.crend(); i++){
cout <<<; i->first << "\t" << i->second < endl;
}
return 0;
} ผลลัพธ์
หากเราเรียกใช้โค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Elements in multimap is : KEY ELEMENT 5 60 2 20 2 30 1 10 1 40 1 50