Trong bài viết này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và các ví dụ của hàm multiset ::crbegin () và multiset ::crend () trong C ++ STL.
Multiset trong C ++ STL là gì?
Multisets là các vùng chứa tương tự như vùng chứa đã đặt, có nghĩa là chúng lưu trữ các giá trị ở dạng khóa giống như một tập hợp, theo một thứ tự cụ thể.
Trong multiset, các giá trị được xác định là các khóa giống như các tập hợp. Sự khác biệt chính giữa bộ đa hợp và bộ là bộ có các khóa riêng biệt, nghĩa là không có hai khóa nào giống nhau, trong bộ đa hợp có thể có cùng giá trị khóa.
Các khóa nhiều tập hợp được sử dụng để triển khai cây tìm kiếm nhị phân.
Multiset ::crbegin () là gì?
Hàm multiset ::crbegin () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề. crbegin () có nghĩa là hàm bắt đầu đảo ngược không đổi, có nghĩa là hàm này trả về trình lặp hằng trỏ đến phần tử cuối cùng của vùng chứa nhiều tập. Hàm này là phiên bản đảo ngược của multiset ::cbegin ()
Trình lặp hằng số chỉ có thể được sử dụng để lặp lại qua vùng chứa nhiều tập, điều này không thể thực hiện thay đổi trong vùng chứa nhiều tập.
Cú pháp
ms_name.crbegin();
Tham số
Hàm không chấp nhận tham số.
Giá trị trả về
Hàm này trả về một trình lặp không đổi đang trỏ đến phần tử cuối cùng của vùng chứa.
Ví dụ
Đầu vào
std::multiset<int> mymultiset = {1, 2, 2, 3, 4}; mymultiset.crbegin();
Đầu ra
4
Ví dụ
#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; }
Đầu ra
First element fetched using crbegin() function: 60 60 50 40 30 20 10
Multiset ::crend () là gì?
Hàm multiset ::crend () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề
Trình lặp hằng số chỉ có thể được sử dụng để lặp lại qua vùng chứa nhiều tập, điều này không thể thực hiện thay đổi trong vùng chứa nhiều tập.
Cú pháp
ms_name.crend();
Tham số
Hàm không chấp nhận tham số.
Giá trị trả về
Hàm này trả về một trình lặp không đổi đang trỏ đến phần tử trước phần tử đầu tiên của vùng chứa.
Ví dụ
Đầu vào
std::multiset<int> mymultiset = {1, 2, 2, 3, 4}; mymultiset.crend();
Đầu ra
error
Ví dụ
#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; }
Đầu ra
Elements in the list are: 60 50 40 30 20 10