C++ STL 中的 multimap upper_bound() 函数


在本文中,我们将讨论 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);

参数

此函数仅接受 1 个参数:

  • 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(){
   //creating a 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 of 1
   auto i = mul.upper_bound(1);
   cout << "Upper bound of key 1 is: ";
   cout << (*i).first << " "<<(*i).second << endl;
   // upper bound of 2
   i = mul.upper_bound(2);
   cout << "Upper bound of key 2 is: ";
   cout << (*i).first << " " <<(*i).second << endl;
   // upper bound of 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

更新于:2020年4月22日

206 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告