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

在本文中,我们将讨论C ++ STL中multimap::upper_bound()函数的工作原理,语法和示例。

什么是C ++ STL中的Multimap?

多图是关联容器,类似于图容器。它还有助于按特定顺序存储由键值和映射值的组合形成的元素。在多图容器中,可以有多个与同一键关联的元素。始终在内部借助关联的键对数据进行排序。

什么是multimap::upper_bound()?

multimap::upper_bound()函数是C ++ STL中的内置函数,在<map>头文件中定义。upper_bound()将迭代器返回到多图容器的上限。此函数返回一个迭代器,该迭代器指向被认为在键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(){
   //创建一个多图
   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 });
   //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