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 ::equal_range () 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 bộ. Sự khác biệt chính giữa tập hợp và tập hợp nhiều khóa là tập hợp có các khóa riêng biệt, nghĩa là không có hai khóa nào giống nhau, trong tập hợp nhiều khóa có thể có cùng giá trị khóa.
Các khóa đa tập hợp được sử dụng để triển khai cây tìm kiếm nhị phân.
Multiset ::equal_range () là gì?
Hàm multiset ::equal_range () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề
Hàm này trả về các giới hạn của phạm vi bao gồm tất cả các phần tử trong vùng chứa bằng với tham số mà chúng tôi cung cấp cho hàm.
Cú pháp
ms_name.equal_range(value_type& val);
Tham số
Hàm chấp nhận một tham số -
- val - Giá trị có phạm vi mà chúng tôi đang tìm kiếm trong vùng chứa.
Giá trị trả về
Hàm này trả về một cặp giới hạn dưới và giới hạn trên trong đó các giá trị bằng
Ví dụ
Đầu vào
std::multiset<int> mymultiset = {1, 2, 2, 3, 4}; mymultiset.equal_range(2);
Đầu ra
2 2
Ví dụ
#include <bits/stdc++.h> using namespace std; int main(){ multiset<int> check; check.insert(10); check.insert(20); check.insert(30); check.insert(40); check.insert(50); check.insert(60); check.insert(70); check.insert(80); cout<<"Elements are: "; for (auto i = check.begin(); i!= check.end(); i++) cout << *i << " "; //lower bound and upper bound auto i = check.equal_range(30); cout<<"\nThe lower bound of 30 is " << *i.first; cout<<"\nThe upper bound of 30 is " << *i.second; // last element i = check.equal_range(20); cout<<"\nThe lower bound of 20 is " << *i.first; cout<<"\nThe upper bound of 20 is " << *i.second; i = check.equal_range(80); cout<<"\nThe lower bound of 80 is " << *i.first; cout<<"\nThe upper bound of 80 is " << *i.second; return 0; }
Đầu ra
Elements are: 10 20 30 40 50 60 70 80 The lower bound of 30 is 30 The upper bound of 30 is 40 The lower bound of 20 is 20 The upper bound of 20 is 30 The lower bound of 80 is 80 The upper bound of 80 is 8