Computer >> Máy Tính >  >> Lập trình >> C ++

hàm multiset equal_range () trong C ++ STL

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 đề . equal_range () nhận phạm vi của các phần tử bằng nhau trong vùng chứa nhiều tập hợp.

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