C++ 多重集 upper_bound()

2024年8月30日 | 阅读4分钟

C++ 多重集 upper_bound() 函数用于返回一个迭代器,该迭代器指向多重集容器中大于参数中传入的 val 的值。

语法

参数

val:要在多重集容器中搜索的值。

返回值

upper_bound() 函数返回一个迭代器,该迭代器指向多重集容器中大于参数中传入的 val 的值。如果没有这样的元素,则返回 end()。

复杂度

大小的对数。

迭代器有效性

无变化。

数据竞争

容器被访问(const 版本和非 const 版本都不会修改多重集容器)。

同时访问容器元素是安全的。

Exception

如果抛出异常,多重集不会发生任何变化。

示例 1

让我们看一个获取给定值上限的简单示例

输出

Upper bound of b is(>): c

在上面的例子中,当我们尝试查找元素 b 的上限时,它将返回大于 b 的元素,即 c

示例 2

让我们看一个从下限到上限删除多重集元素的简单示例

输出

mymultiset contains: 10 20 70 80 90

在上面的例子中,erase() 函数删除了多重集中从下限(=)到上限(>)的元素,并打印了剩余内容。

示例 3

让我们看一个简单的例子

输出

The upper bound of key 11 is 12
The upper bound of key 13 is 14
The upper bound of key 17 is 4

在上面的例子中,当我们尝试查找一个在多重集容器中不存在但没有超过最大值的上限时,它将返回更大的值

也就是说,当我们尝试查找 13 的上限时,它将返回 14;当我们尝试查找一个在多重集中不存在且超过容器最大值的上限时,它将返回 end()。

示例 4

让我们看一个简单的例子

输出

The first element of multiset s1 with a key greater than 20 is: 30.
The multiset s1 doesn't have an element with a key greater than 30.
The first element of s1 with a key greater than
that of the initial element of s1 is: 20.
下一个主题C++ multiset