ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน multiset::begin() และ multiset::end() ใน C++ STL
Multiset ใน C++ STL คืออะไร?
Multisets เป็นคอนเทนเนอร์ที่คล้ายกับ set คือเก็บค่าในรูปแบบ key เหมือน set ในลำดับเฉพาะ
ความแตกต่างหลักคือ set มี key แบบ distinct (ไม่ซ้ำ) ส่วน multiset สามารถมี key ซ้ำได้
multiset::begin() คืออะไร?
ฟังก์ชัน multiset::begin() เป็นฟังก์ชันในตัวของ C++ STL อยู่ใน header <set>
ฟังก์ชันนี้คืน iterator ชี้ไปยังองค์ประกอบแรกใน multiset
เนื่องจาก multiset จัดเก็บค่าแบบ ascending order begin() จะชี้ไปยังองค์ประกอบแรกตามเกณฑ์การจัดเรียง
ไวยากรณ์
ms_name.begin();
พารามิเตอร์
ฟังก์ชันไม่รับพารามิเตอร์
ค่าที่คืน
คืน iterator ชี้ไปยังองค์ประกอบแรกของ multiset
ตัวอย่าง
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
multiset::end() คืออะไร?
ฟังก์ชัน multiset::end() เป็นฟังก์ชันในตัวของ C++ STL อยู่ใน header <set>
ฟังก์ชันนี้คืน iterator ชี้ไปยังตำแหน่ง past-the-end (ตำแหน่งหลังองค์ประกอบสุดท้าย)
Past-the-end element คือองค์ประกอบที่ตามหลังองค์ประกอบสุดท้าย ไม่ชี้ไปยังองค์ประกอบเฉพาะเจาะจง ใช้ร่วมกับ begin() เพื่อระบุช่วงของคอนเทนเนอร์
ไวยากรณ์
ms_name.end();
พารามิเตอร์
ฟังก์ชันไม่รับพารามิเตอร์
ค่าที่คืน
คืน iterator ชี้ไปยัง past-the-end element ของ multiset
ตัวอย่าง
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