C++ set upper_bound()

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

C++ set upper_bound() 函数用于返回一个迭代器,指向 set 容器中大于参数 val 的值。

语法

参数

val:要在 set 容器中搜索的值。

返回值

它返回一个迭代器,指向 set 容器中大于参数 val 的值。如果没有这样的元素,则返回 end()。

复杂度

大小的对数。

迭代器有效性

无变化。

数据竞争

容器被访问(const 和 non-const 版本都不会修改容器)。

并发访问 set 的元素是安全的。

Exception

如果抛出异常,容器中没有变化。

示例 1

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

输出

Upper bound of b is(>): c

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

示例 2

让我们看一个简单的例子来擦除 set 中从下限到上限的元素

输出

myset contains: 10 20 70 80 90

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

示例 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

在上面的例子中,当我们尝试查找 set 容器中不存在但未超过最大值的值的上限时,它将返回较大的值,即当我们尝试查找 13 的上限时,它将返回 14;而当我们尝试查找 set 中不存在且超过容器最大值的上限时,它将返回 end()。

示例 4

让我们看一个简单的例子

输出

The first element of set s1 with a key greater than 20 is: 30.
The set 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.