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

ánh xạ hàm upper_bound () 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 map ::upper_bound () trong C ++ STL.

Bản đồ trong C ++ STL là gì?

Bản đồ là vùng chứa liên kết, tạo điều kiện để lưu trữ các phần tử được hình thành bởi sự kết hợp của giá trị khóa và giá trị được ánh xạ theo một thứ tự cụ thể. Trong vùng chứa bản đồ, dữ liệu luôn được sắp xếp nội bộ với sự trợ giúp của các khóa liên quan. Các giá trị trong vùng chứa bản đồ được truy cập bằng các khóa duy nhất của nó.

Bản đồ ::upper_bound () là gì?

Hàm map ::upper_bound () là một hàm có sẵn trong C ++ STL, được định nghĩa trong tệp tiêu đề . upper_bound () trả về một trình lặp đến giới hạn trên của vùng chứa bản đồ. Hàm này trả về một trình lặp trỏ đến phần tử cuối cùng được coi là đi sau khóa k.

Cú pháp

Map_name.upper_bound(key& k);

Tham số

Hàm này chỉ chấp nhận 1 tham số -

  • k - Chìa khóa mà chúng tôi muốn tìm kiếm.

Giá trị trả về

Hàm này trả về trình lặp đang trỏ đến phần tử tiếp theo của khóa ‘k’ được coi là đi sau khóa k.

Ví dụ

Đầu vào

map<char, int> newmap;
newmap[‘a’] = 1;
newmap[‘b’] = 2;
newmap[‘c’] = 3;
newmap.upper_bound(b);

Đầu ra

c:3

Ví dụ

#include <bits/stdc++.h>
using namespace std;
int main() {
   map<int, int> TP_Map;
   TP_Map.insert({5, 50});
   TP_Map.insert({2, 30});
   TP_Map.insert({1, 10});
   TP_Map.insert({4, 70});
   cout<<"\nTP Map is : \n";
   cout << "MAP_KEY\tMAP_ELEMENT\n";
   for (auto i = TP_Map.rbegin(); i!= TP_Map.rend(); i++) {
      cout << i->first << "\t" << i->second << endl;
   }
   auto i = TP_Map.upper_bound(2);
   cout << "The upper bound of key 2 is ";
   cout << i->first << " " << i->second << endl;
   auto i_1 = TP_Map.upper_bound(3);
   cout << "The upper bound of key 3 is ";
   cout << i_1->first << " " << i_1->second << endl;
   return 0;
}

Đầu ra

TP Map is:
MAP_KEY    MAP_ELEMENT
5             50
4             70
2             30
1             10
The upper bound of key 2 is 4 :70
The upper bound of key 3 is 4 :70