Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm multiset::cbegin() và cend() trong C++ STL


Trong bài viết này, chúng ta sẽ thảo luận về cách hoạt động, cú pháp và ví dụ của multiset::cbegin() và multiset::cend() trong C++ STL.

multiset trong C++ STL là gì?

Multiset là container tương tự set, lưu trữ giá trị dưới dạng khóa theo thứ tự xác định. Khác biệt: set khóa phân biệt, multiset cho phép khóa trùng lặp. Khóa multiset dùng để triển khai cây tìm kiếm nhị phân.

multiset::cbegin() là gì?

multiset::cbegin() là hàm tích hợp sẵn trong C++ STL, định nghĩa trong header <set>. cbegin() là constant begin, trả về iterator hằng trỏ đến phần tử đầu tiên của multiset.

Iterator hằng chỉ dùng để lặp qua multiset, không thể thay đổi container.

Cú pháp

ms_name.cbegin();

Tham số

Hàm không chấp nhận tham số.

Giá trị trả về

Trả về iterator hằng trỏ đến phần tử đầu tiên của container.

Ví dụ

Đầu vào

std::multiset<int> mymultiset = {1, 2, 2, 3, 4}; mymultiset.cbegin();

Kết quả

1

Ví dụ đầy đủ

#include <bits/stdc++.h> 
using namespace std; 

int main() { 
    int arr[] = {10, 20, 30, 40, 50, 60}; 
    multiset<int> check(arr, arr + 6); 
    cout << "Phần tử đầu lấy bằng cbegin(): " << *(check.cbegin()) << endl; 
    for(auto i = check.cbegin(); i != check.cend(); i++) 
        cout << *i << " "; 
    return 0; 
}

Kết quả

Phần tử đầu lấy bằng cbegin(): 10 
10 20 30 40 50 60

multiset::cend() là gì?

multiset::cend() là hàm tích hợp sẵn trong C++ STL, định nghĩa trong <set>. cend() là constant end, trả về iterator hằng trỏ đến vị trí sau phần tử cuối cùng của multiset.

Iterator hằng chỉ dùng để lặp, không thể sửa đổi container.

Cú pháp

ms_name.cend();

Tham số

Hàm không chấp nhận tham số.

Giá trị trả về

Trả về iterator hằng trỏ đến vị trí sau phần tử cuối của container.

Ví dụ

Đầu vào

std::multiset<int> mymultiset = {1, 2, 2, 3, 4}; mymultiset.cend();

Kết quả

error (không thể giải tham chiếu)

Ví dụ đầy đủ

#include <bits/stdc++.h> 
using namespace std; 

int main() { 
    int arr[] = {10, 20, 30, 40, 50, 60}; 
    multiset<int> check(arr, arr + 6); 
    cout << "Các phần tử trong danh sách: "; 
    for(auto i = check.cbegin(); i != check.cend(); i++) 
        cout << *i << " "; 
    return 0; 
}

Kết quả

Các phần tử trong danh sách: 10 20 30 40 50 60