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

multimap::cbegin() และ multimap::cend() ใน C++ STL


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

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

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

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

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

ไวยากรณ์

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

ตัววนซ้ำที่ส่งคืนคือตัววนซ้ำคงที่ ไม่สามารถใช้แก้ไขเนื้อหาได้ เราสามารถใช้พวกมันเพื่อสำรวจองค์ประกอบต่างๆ ของคอนเทนเนอร์แผนที่โดยการเพิ่มหรือลดการวนซ้ำ

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