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

ฟังก์ชัน multiset::begin() และ multiset::end() ใน C++ STL

ในบทความนี้ เราจะพูดถึงการทำงาน ไวยากรณ์ และตัวอย่างของฟังก์ชัน 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