Trong bài viết này, chúng ta sẽ thảo luận về tập hợp ::upper_bound () 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 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 ::upper_bound () là gì?
upper_bound () là một hàm có sẵn trong C ++ STL được khai báo trong tệp tiêu đề
Cú pháp
name_of_set.upper_bound (const type_t &value);
Tham số
Hàm này chấp nhận một tham số, tức là giá trị có giới hạn trên được tìm thấy.
Giá trị trả về
Hàm này trả về một trình vòng lặp trỏ đến phần tử tiếp theo ngay lập tức lớn hơn giá trị
Ví dụ
Input: set<int> myset = {1, 2, 3, 4, 5}; Myset.upper_bound(3); Output: Upper bound = 4
Ví dụ
#include <bits/stdc++.h> using namespace std; int main(){ set<int> Set; Set.insert(9); Set.insert(7); Set.insert(5); Set.insert(3); Set.insert(1); cout<<"Elements are : "; for (auto i = Set.begin(); i!= Set.end(); i++) cout << *i << " "; auto i = Set.upper_bound(5); cout <<"\nupper bound of 5 in the set is: "; cout << (*i) << endl; i = Set.upper_bound(1); cout<<"upper bound of 1 in the set is: "; cout << (*i) << endl; return 0; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
upper bound of 5 in the set is: 7 upper bound of 1 in the set is: 3
Ví dụ
#include <iostream> #include <set> int main (){ std::set<int> Set; std::set<int>::iterator one, end; for (int i=1; i<10; i++) Set.insert(i*10); one = Set.lower_bound (20); end = Set.upper_bound (40); Set.erase(one , end); // 10 20 70 80 90 std::cout<<"Elements are: "; for (std::set<int>::iterator i = Set.begin(); i!=Set.end(); ++i) std::cout << ' ' << *i; std::cout << '\n'; return 0; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Elements are : 10 50 60 70 80 90