C++ STL中的multiset::upper_bound()及其示例
multiset::upper_bound() 是C++ STL中的一个内置函数,它返回一个迭代器,该迭代器指向刚好大于k的下一个元素。如果传递给参数的键超过了容器中的最大键,则返回的迭代器指向容器中最后一个元素后面的位置。
语法:
multiset_name.upper_bound(key)
参数: 此函数接受一个单一的必需参数键,该键指定要返回其upper_bound的元素。
返回值: 该函数返回一个迭代器。
以下程序说明了上述函数:
程序1:
//演示multiset :: upper_bound()函数的C ++程序
#include <bits/stdc++.h>
using namespace std;
int main()
{
multiset<int> s;
//向multiset容器中插入元素的函数
s.insert(1);
s.insert(3);
s.insert(3);
s.insert(5);
s.insert(4);
cout << "multiset的元素为:";
for (auto it = s.begin(); it!= s.end(); it ++)
cout << *it << " ";
//当3存在时
auto it = s.upper_bound(3);
cout << "键3的上限为";
cout << (*it) << endl;
//当2不存在时,指向大于2的下一个元素
it = s.upper_bound(2);
cout << "键2的上限为";
cout << (*it) << endl;
//当10超过了multiset中的最大元素
it = s.upper_bound(10);
cout << "键10的上限为";
cout << (*it) << endl;
return 0;
}
输出:
multiset的元素为:1 3 3 4 5
键3的上限为4
键2的上限为3
键10的上限为5
程序2:
//演示multiset :: upper_bound()函数的C ++程序
#include <bits/stdc++.h>
using namespace std;
int main()
{
multiset<int> s;
//向multiset容器中插入元素的函数
s.insert(10);
s.insert(13);
s.insert(13);
s.insert(25);
s.insert(24);
cout << "multiset的元素为:";
for (auto it = s.begin(); it!= s.end(); it ++)
cout << *it << " ";
//当10存在时
auto it = s.upper_bound(10);
cout << "键10的上限为";
cout << (*it) << endl;
//当2不存在时,指向大于2的下一个元素
it = s.upper_bound(2);
cout << "键2的上限为";
cout << (*it) << endl;
//当24超过了multiset中的最大元素
it = s.upper_bound(24);
cout << "键24的上限为";
cout << (*it) << endl;
return 0;
}
输出:
multiset的元素为:10 13 13 24 25
键10的上限为13
键2的上限为10
键24的上限为25