C++ 中 std::set::lower_bound 和 std::lower_bound 的区别17 Mar 2025 | 5 分钟阅读 在本文中,我们将讨论 C++ 中 std::lower_bound 和 std::set::lower_bound 函数之间的区别。但在讨论它们的不同之处之前,我们必须了解 std::lower_bound 和 std::set::lower_bound 函数。 C++ 中的 std::lower_bound 是什么?std::lower_bound 函数使用二分查找在**已排序范围**中查找给定值可插入的第一个位置,而不会破坏排序。输出是一个迭代器,它显示范围 [first, last] 中第一个大于或等于给定值的值。换句话说,函数**std::lower_bound** 确定已排序范围中大于或等于输入值的最小元素的索引。此返回迭代器之前的所有元素必须小于该值。**std::lower_bound** 之后的元素可能大于或等于该值,也可能不大于或等于该值。它使得 std::lower_bound 可以高效地进行查找和插入到存储数据中。 C++ 中的 std::set::lower_bound 是什么?std::set 的 lower_bound() 方法执行二分查找,以查找给定键的插入位置,以保持**Set 的排序**。它返回一个迭代器,指向第一个大于或等于所搜索键的条目。 如果 Set 中不存在该键,lower_bound 返回一个迭代器,指向在所搜索键之后排序的下一个最重要元素。它发现该键的**“下边界”**在有序 Set 中。它允许高效查找,即使是 Set 中不存在的键也是如此。 如果所搜索的键大于 Set 中最大的元素,**Lower_bound** 将提供一个指向 set 容器末尾的迭代器。 std::lower_bound 和 set::lower_bound 有什么区别?![]() 下表以表格形式比较了 std::lower_bound 和 std::set::lower_bound。
而 std::set::lower_bound 是一个集合成员函数,它利用其排序专门用于集合中的查找/插入。但两者都以 O(log n) 时间返回值的**“下边界”**。 示例让我们通过一个程序来演示 C++ 中 std::lower_bound() 的用法。 输出 Vector contains: 1 2 4 4 5 7 8 10 First element not less than 6 is at position: 5 在此示例中,目标值为 35,并且使用 std::lower_bound() 查找 35 可插入向量中以保持排序顺序的位置。输出表明元素 35 可以插入到位置 3 以保持排序顺序。 说明
示例让我们通过一个程序来演示 C++ 中 std::set::lower_bound() 的用法。 输出 Set contains: 1 2 4 5 7 8 10 First element not less than 6 is: 7 在此示例中,使用 std::set::lower_bound() 函数查看 35 可以插入到 Set 的哪个位置以保持排序顺序。输出表明元素 35 可以插入到位置 4 以保持排序顺序。如果找不到该组件,它将返回一个迭代器,指向第一个大于目标的元素。 说明
结论std::lower_bound 是一种通用算法,它执行二分查找以在任何排序容器中查找键的插入点,而 std::set::lower_bound 是一个 std::set 成员函数,它利用集合的排序以对数时间高效地定位键的位置或下一个最重要的元素。前者普遍适用于排序范围;后者针对 std::set 容器上的操作进行了优化。 下一主题# |
排列就像组合学的魔杖,让我们能够探索元素如何在数组中重新排列。掌握生成数组的所有排列的技巧非常有用,无论我们是编码员、数学爱好者还是正在解决问题的人...
阅读 3 分钟
给定三个变量 a、b 和 c,我们的任务是在不使用任何算术、关系和条件运算符的情况下设置 x 的值。我们需要遵循以下规则。方法:如果 c = 0 则 x = a 否则 //...
阅读 3 分钟
在当今世界,计算机网络在数据传输领域扮演着重要的角色。这是每个程序员都应该了解的科目。在计算机网络中,套接字编程是编程世界中最重要的主题之一。在本主题中,我们是...
11 分钟阅读
下面的代码是使用类在 C++ 中实现两个数字相加的示例。类是定义对象的数据成员和成员函数的蓝图或结构。在此代码中,Addition 类用于添加两个数字。该...
阅读 4 分钟
C++ 中的实际参数和形式参数分别指传递给函数和从函数接收的值。函数定义指定其形式参数的数量、类型和名称,而函数调用提供相应的实际参数。将实际参数与……匹配的过程。
阅读 3 分钟
编程中使用的两种流行的字符编码系统是 ASCII 和 Unicode。Unicode 可以表示超过 100,000 个字符,使用从 0 到 0x10FFFF 的码点,而 ASCII 只能表示 128 个字符,使用 7 位。当处理或显示 ASCII 中不存在的字符时...
5 分钟阅读
在本文中,我们将通过示例讨论 C++ 中的神经网络。什么是神经网络?神经网络是一种计算模型,其结构与大脑中的神经元相似。它的功能也与….
11 分钟阅读
在本文中,我们将讨论 std::numeric_limits::max() 和 std::numeric_limits::min() 函数,包括它们的语法和示例。std::numeric_limits::max() 是什么? std::numeric_limits<T>:: max() 方法返回由数值类型 T 表示的最大有限数字。所有算术类型都可以用于类型 T。头文件:#include<limits> 模板:static T max() throw(); static...
阅读 2 分钟
函数是一段可重用的代码块,执行特定任务。它在程序的各个部分定义和调用。在 C++ 中,函数根据其用法和功能分为多种类型。这些是常规函数、内联函数、...
阅读 4 分钟
为什么需要模板? C++ 要求我们使用特定类型来声明变量、函数和其他实体。但是,对于不同的类型,很多代码看起来是一样的。特别是如果我们实现算法,比如快速排序,或者数据结构的行为,比如链表或...
阅读9分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India