C++ STL 中的 multimap upper_bound() 函数
multimap::upper_bound(k) 是C++ STL中的内置函数,它返回一个迭代器,指向刚好大于 k 的下一个元素。如果参数中的键超过容器中的最大键,则返回的迭代器指向 key+1 和 element=0。
语法:
multimap_name.upper_bound(key)
参数: 该函数接受一个必填参数 key,该参数指定要返回其 lower_bound 的元素。
返回值: 该函数返回一个迭代器,指向刚好大于 k 的下一个元素。如果参数中的键超过容器中的最大键,则返回的迭代器指向 key+1 和 element=0。
// C++用于演示的函数
// multimap::upper_bound() 函数
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 初始化容器
multimap<int, int> mp;
// 随机插入元素
mp.insert({ 2, 30 });
mp.insert({ 1, 40 });
mp.insert({ 2, 60 });
mp.insert({ 2, 20 });
mp.insert({ 1, 50 });
mp.insert({ 4, 50 });
// 当 2 存在时
auto it = mp.upper_bound(2);
cout << "键为 2 的 upper bound 是 ";
cout << (*it).first << " " << (*it).second << endl;
// 当 3 不存在时
it = mp.upper_bound(3);
cout << "键为 3 的 upper bound 是 ";
cout << (*it).first << " " << (*it).second << endl;
// 当 5 超过最大键时
it = mp.upper_bound(5);
cout << "键为 5 的 upper bound 是 ";
cout << (*it).first << " " << (*it).second;
return 0;
}
键为 2 的 upper bound 是 4 50
键为 3 的 upper bound 是 4 50
键为 5 的 upper bound 是 6 0