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

multimap::crbegin() และ multimap::crend() ใน C++ STL


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

มัลติแมปใน C++ STL คืออะไร

Multimaps เป็นคอนเทนเนอร์ที่เชื่อมโยงกัน ซึ่งคล้ายกับคอนเทนเนอร์แผนที่ นอกจากนี้ยังอำนวยความสะดวกในการจัดเก็บองค์ประกอบที่เกิดจากการรวมกันของคีย์-ค่าและค่าที่แมปในลำดับเฉพาะ ในคอนเทนเนอร์แบบหลายแผนที่ อาจมีองค์ประกอบหลายรายการที่เชื่อมโยงกับคีย์เดียวกัน ข้อมูลจะถูกจัดเรียงภายในเสมอโดยใช้คีย์ที่เกี่ยวข้อง

multimap::cbegin() คืออะไร

ฟังก์ชัน multimap::crbegin() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว crbegin() หมายถึงการย้อนกลับอย่างต่อเนื่องหมายถึงการย้อนกลับของ cbegin ซึ่งเริ่มต้นคงที่ กล่าวคือ ฟังก์ชัน crbegin() จะส่งคืนตัววนซ้ำซึ่งชี้ไปที่องค์ประกอบสุดท้ายของคอนเทนเนอร์ multimap ที่เกี่ยวข้องกับฟังก์ชัน ไม่สามารถใช้ตัววนซ้ำนี้เพื่อแก้ไข multimap สามารถใช้เพื่อข้ามผ่านชุดคอนเทนเนอร์ได้

ไวยากรณ์

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 ซึ่งกำหนดไว้ในไฟล์ส่วนหัว crend() หมายถึงตัววนซ้ำสิ้นสุดแบบคงที่ หมายถึงมันกลับด้านของ cend ซึ่งเป็นตัววนซ้ำสิ้นสุดคงที่ กล่าวคือ ฟังก์ชัน crend() จะส่งคืนตัววนซ้ำซึ่งชี้ไปยังตำแหน่งก่อนตำแหน่งแรกของคอนเทนเนอร์ที่เกี่ยวข้อง ด้วยฟังก์ชัน ไม่สามารถใช้ตัววนซ้ำนี้เพื่อแก้ไข multimap สามารถใช้เพื่อสำรวจคอนเทนเนอร์แบบหลายแผนที่ได้

ไวยากรณ์

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