C++ STL 中的 multimap upper_bound() 函数
c++server side programmingprogramming
本文将讨论 C++ STL 中 multimap::upper_bound() 函数的工作原理、语法和示例。
C++ STL 中的 Multimap 是什么?
Multimap 是一种关联容器,类似于 Map 容器。它能够以特定顺序存储由键值对和映射值组合而成的元素。在 Multimap 容器中,同一个键可以关联多个元素。数据在内部始终根据其关联键进行排序。
什么是 multimap::upper_bound()?
multimap::upper_bound() 函数是 C++ STL 中的一个内置函数,定义在 <map> 头文件中。upper_bound() 返回一个指向 Multimap 容器上界的迭代器。此函数返回一个迭代器,该迭代器指向键 k 之后的最后一个元素。
语法
Map_name.upper_bound(key& k);
参数
此函数仅接受一个参数 −
k − 我们要搜索的键。
返回值
此函数返回一个迭代器,该迭代器指向键 "k" 的下一个元素,该元素被认为位于键 k 之后。
输入
map<char, int> newmap; newmap(make_pair(‘a’, 1)); newmap(make_pair(‘b’, 2)); newmap(make_pair(‘c’, 3)); newmap.upper_bound(b);
输出
c:3
示例
#include <bits/stdc++.h> using namespace std; int main(){ //创建多重映射 multimapmul; mul.insert({ 2, 10 }); mul.insert({ 1, 20 }); mul.insert({ 1, 30 }); mul.insert({ 3, 40 }); mul.insert({ 3, 50 }); mul.insert({ 4, 60 }); // 上限为 1 auto i = mul.upper_bound(1); cout << "Upper bound of key 1 is: "; cout << (*i).first << " "<<(*i).second << endl; // 上限为 2 i = mul.upper_bound(2); cout << "Upper bound of key 2 is: "; cout << (*i).first << " " <<(*i).second << endl; // 上限为 3 i = mul.upper_bound(3); cout << "Upper bound of key 3 is: "; cout << (*i).first << " " << (*i).second << endl; return 0; }
输出
如果我们运行上述代码,它将生成以下输出 −
Upper bound of key 1 is: 2 10 Upper bound of key 2 is: 3 40 Upper bound of key 3 is: 4 60