ในบทความนี้เราจะพูดถึงการทำงาน ไวยากรณ์และตัวอย่างของฟังก์ชัน multiset::begin() และ multiset::end() ใน C++ STL
มัลติเซ็ตใน C++ STL คืออะไร
ชุดหลายชุดคือคอนเทนเนอร์ที่คล้ายกับชุดคอนเทนเนอร์ ซึ่งหมายความว่าจะเก็บค่าต่างๆ ในรูปแบบของคีย์เหมือนกับชุดในลำดับเฉพาะ
ในชุดหลายชุด ค่าจะถูกระบุเป็นคีย์เหมือนกับชุด ความแตกต่างหลัก ระหว่าง multiset และ set คือ ชุดมีคีย์ที่แตกต่างกัน ซึ่งหมายความว่าไม่มีสองคีย์ที่เหมือนกัน ใน multiset สามารถมีค่าคีย์เดียวกันได้
คีย์หลายชุดใช้ในการสร้างแผนผังการค้นหาแบบไบนารี
mulset::begin() คืออะไร
ฟังก์ชัน multiset::begin() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ใน
ฟังก์ชันนี้ส่งคืนตัววนซ้ำซึ่งชี้ไปที่องค์ประกอบแรกในคอนเทนเนอร์แบบหลายเซ็ต
เนื่องจากคอนเทนเนอร์แบบหลายเซ็ตเก็บค่าในลำดับจากน้อยไปมาก Begin() จะชี้ไปที่องค์ประกอบซึ่งเป็นองค์ประกอบแรกของคอนเทนเนอร์ตามเกณฑ์การจัดเรียง
ไวยากรณ์
ms_name.begin();
พารามิเตอร์
ฟังก์ชันไม่รับพารามิเตอร์
คืนค่า
ฟังก์ชันนี้ส่งคืนตัววนซ้ำที่ชี้ไปยังองค์ประกอบแรกของคอนเทนเนอร์หลายชุดที่เกี่ยวข้อง
ตัวอย่าง
Input: std::multiset<int> mymultiset = {1, 2, 2, 3, 4}; mymultiset.begin(); Output: 1
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; int main() { int arr[] = {2, 4, 1, 3, 8, 5, 6}; multiset<int> check(arr, arr + 7); cout<<"List is : "; for (auto i = check.begin(); i != check.end(); i++) cout << *i << " "; cout<<"\nStarting Element is : "<<*(check.begin()); return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
List is : 1 2 3 4 5 6 8 Starting Element is : 1
มัลติเซ็ต::end() คืออะไร
ฟังก์ชัน multiset::end() เป็นฟังก์ชัน inbuilt ใน C++ STL ซึ่งกำหนดไว้ในไฟล์ส่วนหัว
ฟังก์ชันนี้ส่งคืนตัววนซ้ำซึ่งชี้ไปยังตำแหน่งอดีตถึงสิ้นสุดใน multisetcontainer
องค์ประกอบ Past to end เป็นองค์ประกอบที่ตามหลังองค์ประกอบสุดท้ายของคอนเทนเนอร์ multiset กล่าวโดยย่อ ไม่ได้ชี้ไปที่องค์ประกอบเฉพาะใดๆ ของคอนเทนเนอร์หลายชุด โดยทั่วไป ฟังก์ชันนี้ใช้กับ start() เพื่อกำหนดช่วงของคอนเทนเนอร์หลายชุด
ไวยากรณ์
ms_name.end();
พารามิเตอร์
ฟังก์ชันไม่รับพารามิเตอร์
คืนค่า
ฟังก์ชันนี้ส่งคืนตัววนซ้ำที่ชี้ไปที่องค์ประกอบสิ้นสุดของคอนเทนเนอร์หลายชุดที่เกี่ยวข้อง
ตัวอย่าง
Input: std::multiset<int> mymultiset = {1, 2, 2, 3, 4}; for( std::multiset<int>::iterator it=mymultiset.begin(); it!=mymultiset.end(); ++it ) Output: 1 2 2 3 4
ตัวอย่าง
#include <bits/stdc++.h> using namespace std; int main() { int arr[] = {2, 4, 1, 3, 8, 5, 6}; multiset<int> check(arr, arr + 7); cout<<"List is : "; for (auto i = check.begin(); i != check.end(); i++) cout << *i << " "; return 0; }
ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -
List is : 1 2 3 4 5 6 8