📅  最后修改于: 2023-12-03 14:59:46.644000             🧑  作者: Mango
在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中的元素。