📜  C++ STL中的multimap lower_bound()函数(1)

📅  最后修改于: 2023-12-03 14:59:46.644000             🧑  作者: Mango

C++ STL中的multimap lower_bound()函数

在C++ STL中,multimap是一种关联容器,可以存储多个具有相同关键字的元素。lower_bound()函数则是multimap中的函数之一,用于查找multimap中第一个大于或等于给定键值的元素。

语法

以下是lower_bound()函数的语法:

iterator lower_bound (const key_type& k);

其中,iterator表示一个指向multimap元素的迭代器类型,key_type为multimap中关键字类型的别名。参数k为要查找的关键字。

此外,还有一个版本的lower_bound()函数可接受一个比较函数对象来对元素进行比较:

template <class Compare>
iterator lower_bound (const key_type& k, Compare comp);
返回值

lower_bound()函数返回一个指向第一个大于或等于k的元素的迭代器。如果没有找到这样的元素,则返回multimap的end()迭代器。

示例

下面代码演示了如何使用lower_bound()函数来查找multimap中的元素:

#include <iostream>
#include <map>

int main() {
    std::multimap<char, int> mymap;
    mymap.insert(std::make_pair('a', 10));
    mymap.insert(std::make_pair('b', 20));
    mymap.insert(std::make_pair('c', 30));
    mymap.insert(std::make_pair('c', 40));
    mymap.insert(std::make_pair('d', 50));

    auto it = mymap.lower_bound('c');
    for (; it != mymap.end(); ++it) {
        std::cout << it->first << ":" << it->second << std::endl;
    }

    return 0;
}

输出为:

c:30
c:40
d:50

在上面的示例中,我们创建了一个存储char和int类型的multimap对象。然后使用insert()函数向其中插入了5个元素。

接着,我们使用lower_bound()函数查找第一个大于或等于指定键值'c'的元素,并通过迭代器遍历输出了找到的元素及其值。

总结

通过本文,我们了解了C++ STL中multimap lower_bound()函数的基本用法及其语法、返回值以及一个简单的示例。掌握这些基本知识后,我们可以在实际开发中自如地使用lower_bound()函数来查找multimap中的元素。