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

Hàm multimap::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à các ví dụ của hàm multimap::upper_bound() trong C++ STL.

Multimap trong C++ STL là gì?

Multimap là container liên kết, tương tự như map. Nó lưu trữ các phần tử dạng cặp key-value theo thứ tự cụ thể. Multimap cho phép nhiều phần tử có cùng một key. Dữ liệu luôn được sắp xếp theo key.

Hàm multimap::upper_bound() là gì?

multimap::upper_bound() là hàm built-in trong C++ STL, được định nghĩa trong header <map>. Hàm này trả về iterator trỏ đến upper bound (giới hạn trên) của key k trong multimap. Iterator trả về trỏ đến phần tử đầu tiên mà key lớn hơn k (tức là key > k).

Cú pháp

map_name.upper_bound(key& k);

Tham số

  • k – Key cần tìm kiếm.

Giá trị trả về

Trả về iterator trỏ đến phần tử đầu tiên có key lớn hơn k. Nếu không tìm thấy, trả về iterator end().

Ví dụ minh họa

#include <bits/stdc++.h>
using namespace std;

int main() {
    // Tạo multimap
    multimap<int, int> mul;
    mul.insert({2, 10});
    mul.insert({1, 20});
    mul.insert({1, 30});
    mul.insert({3, 40});
    mul.insert({3, 50});
    mul.insert({4, 60});
    
    // upper_bound của key 1
    auto i = mul.upper_bound(1);
    cout << "Upper bound của key 1: " << (*i).first << " " << (*i).second << endl;
    
    // Upper bound của key 2
    i = mul.upper_bound(2);
    cout << "Upper bound của key 2: " << (*i).first << " " << (*i).second << endl;
    
    // Upper bound của key 3
    i = mul.upper_bound(3);
    cout << "Upper bound của key 3: " << (*i).first << " " << (*i).second << endl;
    
    return 0;
}

Kết quả

Upper bound của key 1: 2 10
Upper bound của key 2: 3 40
Upper bound của key 3: 4 60