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

Đặt hàm equal_range () trong C ++ STL

Trong bài viết này, chúng ta sẽ thảo luận về hàm set ::equal_range () trong C ++ STL, cú pháp, cách làm việc và giá trị trả về của chúng.

Đặt trong C ++ STL là gì?

Các bộ trong C ++ STL là các bộ chứa phải có các phần tử duy nhất theo thứ tự chung. Tập hợp phải có các phần tử duy nhất vì giá trị của phần tử xác định phần tử. Sau khi đã thêm một giá trị trong một vùng chứa đã đặt thì không thể sửa đổi được, mặc dù chúng tôi vẫn có thể xóa hoặc thêm các giá trị vào tập hợp đó. Các tập hợp được sử dụng làm cây tìm kiếm nhị phân.

Set ::equal_range ()

là gì

Hàm 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ề phạm vi của vùng chứa đã đặt chứa giá trị được truyền làm đối số của hàm. Tập hợp chứa tất cả các giá trị duy nhất nên giá trị tương đương trong phạm vi tìm được sẽ là giá trị duy nhất. Nếu giá trị không có trong vùng chứa, phạm vi sẽ bằng 0, với cả hai trình vòng lặp đều trỏ đến vị trí đầu tiên.

Cú pháp

Set1.equal_range(const type_t& value);

Tham số

Hàm này chấp nhận một tham số, tức là phần tử sẽ được tìm thấy.

Giá trị trả về

Hàm này trả về cặp hoặc chúng ta có thể nói phạm vi trình lặp bắt đầu từ giới hạn dưới của vùng chứa cho đến khi phần tử được tìm thấy trong vùng chứa.

Ví dụ

Input: set<int> myset = {10, 20, 30, 40};
Output: lower bound of 30 is 30

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main(){
   set<int> mySet;
   mySet.insert(10);
   mySet.insert(20);
   mySet.insert(30);
   mySet.insert(40);
   mySet.insert(50);
   cout<<"Elements before applying range() Function : ";
   for (auto i = mySet.begin(); i != mySet.end(); i++)
      cout << *i << " ";
   auto i = mySet.equal_range(30);
   cout<<"\nlower bound of 30 is "<< *i.first;
   cout<<"\nupper bound of 30 is "<< *i.second;
   i = mySet.equal_range(40);
   cout<<"\nlower bound of 40 is " << *i.first;
   cout<<"\nupper bound of 40 is " << *i.second;
   i = mySet.equal_range(10);
   cout<<"\nlower bound of 10 is " << *i.first;
   cout<<"\nupper bound of 10 is " << *i.second;
   return 0;
}

Đầu ra

Nếu chúng ta chạy đoạn mã trên thì nó sẽ tạo ra kết quả sau -

Elements before applying range() Function : 10 20 30 40 50
lower bound of 30 is 30
upper bound of 30 is 40
lower bound of 40 is 40
upper bound of 40 is 50
lower bound of 10 is 10
upper bound of 10 is 20