Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Hàm map::upper_bound() trong C++ STL


Trong bài viết này, chúng ta sẽ thảo luận về cách hoạt động, cú pháp và ví dụ của hàm map::upper_bound() trong C++ STL.

Map trong C++ STL là gì?

Map là container liên hợp, cho phép lưu trữ các phần tử được hình thành từ tổ hợp khóa (key) và giá trị ánh xạ (mapped value) theo một thứ tự xác định. Trong container map, dữ liệu luôn được sắp xếp nội bộ nhờ các khóa liên kết. Các giá trị trong map được truy xuất bằng khóa duy nhất của chúng.

map::upper_bound() là gì?

map::upper_bound() là hàm built-in trong C++ STL, được định nghĩa trong header . Hàm upper_bound() trả về iterator đến giới hạn trên của container map. Hàm này trả về iterator 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 chỉ chấp nhận 1 tham số:

  • k – Khóa cần tìm kiếm.

Giá trị trả về

Hàm trả về iterator 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ụ hoàn chỉnh

#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 là: \n";    cout << "KHOÁ\tGIÁ TRỊ\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 << "Giới hạn trên của khóa 2 là ";    cout << i->first << " " << i->second << endl;    auto i_1 = TP_Map.upper_bound(3);    cout << "Giới hạn trên của khóa 3 là ";    cout << i_1->first << " " << i_1->second << endl;    return 0; }

Kết quả

TP Map là: KHOÁ   GIÁ TRỊ 5     50 4     70 2     30 1     10 Giới hạn trên của khóa 2 là 4 :70 Giới hạn trên của khóa 3 là 4 :70