ในบทความนี้เราจะพูดถึงการทำงาน ไวยากรณ์และตัวอย่างของฟังก์ชัน multiset::crbegin() และ multiset::crend() ใน C++ STL
มัลติเซ็ตใน C++ STL คืออะไร
ชุดหลายชุดคือคอนเทนเนอร์ที่คล้ายกับชุดคอนเทนเนอร์ ซึ่งหมายความว่าจะเก็บค่าต่างๆ ในรูปแบบของคีย์เหมือนกับชุดในลำดับเฉพาะ
ในชุดหลายชุด ค่าจะถูกระบุเป็นคีย์เหมือนกับชุด ความแตกต่างหลัก ระหว่าง multiset และ set คือ ชุดมีคีย์ที่แตกต่างกัน ซึ่งหมายความว่าไม่มีสองคีย์ที่เหมือนกัน ใน multiset สามารถมีค่าคีย์เดียวกันได้
คีย์หลายชุดใช้ในการสร้างแผนผังการค้นหาแบบไบนารี
มัลติเซ็ต::crbegin() คืออะไร
ฟังก์ชัน multiset::crbegin() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว crbegin() หมายถึงฟังก์ชันเริ่มต้นแบบย้อนกลับคงที่ หมายถึงฟังก์ชันนี้ส่งคืนตัววนซ้ำคงที่ที่ชี้ไปที่องค์ประกอบสุดท้ายของคอนเทนเนอร์แบบหลายชุด ฟังก์ชันนี้เป็นเวอร์ชันย้อนกลับของ multiset::cbegin()
สามารถใช้ตัววนซ้ำคงที่สำหรับการวนซ้ำผ่านคอนเทนเนอร์แบบหลายเซ็ต ซึ่งไม่สามารถเปลี่ยนแปลงในคอนเทนเนอร์แบบหลายเซ็ตได้
ไวยากรณ์
ms_name.crbegin();
พารามิเตอร์
ฟังก์ชันไม่รับพารามิเตอร์
คืนค่า
ฟังก์ชันนี้ส่งคืนตัววนซ้ำคงที่ซึ่งชี้ไปที่องค์ประกอบสุดท้ายของคอนเทนเนอร์
ตัวอย่าง
อินพุต
std::multiset<int> mymultiset = {1, 2, 2, 3, 4}; mymultiset.crbegin();
ผลลัพธ์
4
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; int main(){ int arr[] = {10, 20, 30, 40, 50, 60}; multiset<int> check(arr, arr + 6); cout<<"First element fetched using crbegin() function: "<<*(check.crbegin()) << endl; for(auto i = check.crbegin(); i!= check.crend(); i++) cout << *i << " "; return 0; }
ผลลัพธ์
First element fetched using crbegin() function: 60 60 50 40 30 20 10
mulset::crend() คืออะไร
ฟังก์ชัน multiset::crend() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
สามารถใช้ตัววนซ้ำคงที่สำหรับการวนซ้ำผ่านคอนเทนเนอร์แบบหลายเซ็ต ซึ่งไม่สามารถเปลี่ยนแปลงในคอนเทนเนอร์แบบหลายเซ็ตได้
ไวยากรณ์
ms_name.crend();
พารามิเตอร์
ฟังก์ชันไม่รับพารามิเตอร์
คืนค่า
ฟังก์ชันนี้ส่งคืนตัววนซ้ำคงที่ซึ่งชี้ไปยังองค์ประกอบก่อนหน้าของคอนเทนเนอร์แรก
ตัวอย่าง
อินพุต
std::multiset<int> mymultiset = {1, 2, 2, 3, 4}; mymultiset.crend();
ผลลัพธ์
error
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; int main(){ int arr[] = {10, 20, 30, 40, 50, 60}; multiset<int> check(arr, arr + 6); cout<<"Elements in the list are: "; for(auto i = check.crbegin(); i!= check.crend(); i++) cout << *i << " "; return 0; }
ผลลัพธ์
Elements in the list are: 60 50 40 30 20 10