C++ lower_bound() 函数详解:查找有序容器中第一个不小于目标值的元素

lower_bound() 是 C++ 标准库中的一个成员函数,用于在有序容器(例如 std::setstd::map)中查找第一个大于或等于给定值的元素,并返回指向该元素的迭代器。

函数签名

iterator lower_bound(const Key& key);
  • key:要查找的键值。

返回值

lower_bound() 返回一个迭代器,指向容器中第一个大于或等于给定键值的元素。如果没有找到这样的元素(即所有元素都小于给定值),则返回指向容器最后一个元素之后位置的迭代器(等同于 end())。

示例代码

以下示例代码演示了如何使用 lower_bound() 函数:

#include <iostream>
#include <set>

int main() {
    std::set<int> mySet = {10, 20, 30, 40, 50};

    int key = 25;

    auto it = mySet.lower_bound(key);
    if (it != mySet.end()) {
        std::cout << 'First element greater than or equal to ' << key << ': ' << *it << std::endl;
    } else {
        std::cout << 'No element greater than or equal to ' << key << ' found in the set' << std::endl;
    }

    return 0;
}

在上述示例中,我们首先创建了一个有序集合 std::set<int> 并初始化了一些元素。然后,我们使用 lower_bound() 函数查找大于或等于键值 25 的第一个元素。

与 find() 函数的区别

需要注意的是,lower_bound() 函数返回的迭代器并不一定指向与给定键值相等的元素,而是指向第一个大于或等于给定键值的元素。如果要查找与给定键值相等的元素,应该使用 find() 函数。

总结

lower_bound() 函数是 C++ 标准库提供的一个非常实用的工具,可以高效地在有序容器中查找元素。熟练掌握 lower_bound() 函数的用法,可以帮助你编写更加简洁高效的代码。

C++ lower_bound() 函数详解:查找有序容器中第一个不小于目标值的元素

原文地址: https://www.cveoy.top/t/topic/RLP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录