ในบทความนี้เราจะพูดถึงการทำงาน ไวยากรณ์และตัวอย่างของฟังก์ชัน multimap::cbegin() และ multimap::cend() ใน C++ STL
มัลติแมปใน C++ STL คืออะไร
Multimaps เป็นคอนเทนเนอร์ที่เชื่อมโยงกัน ซึ่งคล้ายกับคอนเทนเนอร์แผนที่ นอกจากนี้ยังอำนวยความสะดวกในการจัดเก็บองค์ประกอบที่เกิดจากการรวมกันของค่าคีย์และค่าที่แมปในลำดับเฉพาะ ในคอนเทนเนอร์แบบหลายแผนที่ อาจมีองค์ประกอบหลายรายการที่เชื่อมโยงกับคีย์เดียวกัน ข้อมูลจะถูกจัดเรียงภายในเสมอโดยใช้คีย์ที่เกี่ยวข้อง
multimap::cbegin() คืออะไร
ฟังก์ชัน multimap::cbegin() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
ไวยากรณ์
multi.cbegin();
พารามิเตอร์
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
คืนค่า
ส่งคืนตัววนซ้ำที่ชี้ไปที่องค์ประกอบแรกของคอนเทนเนอร์แผนที่ที่เกี่ยวข้อง
ป้อนข้อมูล
multimap<char, int> newmap; newmap[‘a’] = 1; newmap[‘b’] = 2; newmap[‘c’] = 3; newmap.cbegin();
ผลผลิต −
a = 1
ตัวอย่าง
#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.cbegin(); cout << "First element in the multimap is: "; cout << "{" << it->first << ", " << it->second << "}\n"; cout << "\nElements in multimap is : \n"; cout << "KEY\tELEMENT\n"; for (auto i = mul.cbegin(); i!= mul.cend(); i++){ cout << i->first << "\t" << i->second << endl; } return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
First element in the multimap is: {1, 50} Elements in multimap is : KEY ELEMENT 1 50 1 40 1 10 2 30 2 20 5 60
multimap::cend() คืออะไร
ฟังก์ชัน multimap::cend() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
ตัววนซ้ำที่ส่งคืนคือตัววนซ้ำคงที่ ไม่สามารถใช้แก้ไขเนื้อหาได้ เราสามารถใช้พวกมันเพื่อสำรวจองค์ประกอบต่างๆ ของคอนเทนเนอร์แผนที่โดยการเพิ่มหรือลดการวนซ้ำ
multimap::cbegin() และ multimap::cend() ใช้เพื่อข้ามผ่านคอนเทนเนอร์ทั้งหมดโดยให้การเริ่มต้นของช่วงและจุดสิ้นสุดของช่วง
ไวยากรณ์
multi.cend();
พารามิเตอร์
ฟังก์ชันนี้ไม่รับพารามิเตอร์ใดๆ
คืนค่า
ส่งคืนตัววนซ้ำที่ชี้ไปยังองค์ประกอบสุดท้ายของคอนเทนเนอร์แผนที่ที่เกี่ยวข้องในอดีต
ป้อนข้อมูล −
multimap <char, int> newmap; newmap(make_pair(‘a’, 1)); newmap(make_pair(‘b’, 2)); newmap(make_pair(‘c’, 3)); newmap.cend();
ผลผลิต −
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.cbegin(); i!= mul.cend(); i++){ cout << i->first << "\t" << i->second << endl; } return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
Elements in multimap is : KEY ELEMENT 1 50 1 40 1 10 2 30 2 20 5 60