我们要在 STL 中的 multimap 容器中查找键不小于指定值的第一个元素,我们可以使用 lower_bound 函数。如果成功找到,则返回指向该键值对的双向迭代器;反之,则返回和 end() 方法一样的迭代器。
lower_bound(key)
参数 | 描述 |
---|---|
key | 需要查找的键。 |
返回一个指向当前 multimap 容器中第一个大于或等于 key 的键值对的双向迭代器。如果 multimap 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器。
使用 lower_bound 查找 multimap 中的元素
#include <iostream>
#include <map>
using namespace std;
int main()
{
cout << "嗨客网(www.haicoder.net)\n" << endl;
multimap<int, string> multimap1{{1, "Mon"}, {2, "Thu"}, {3, "Wed"}};
auto iter = multimap1.lower_bound(2);
if (iter != multimap1.end())
{
cout << "Find: " << iter->first << " " << iter->second << endl;
}
else
{
cout << "Not Find 2" << endl;
}
iter = multimap1.lower_bound(4);
if (iter != multimap1.end())
{
cout << "Find: " << iter->first << " " << iter->second << endl;
}
else
{
cout << "Not Find 4" << endl;
}
return 0;
}
编译后,我们直接运行生成的二进制文件 a.out
,如下图所示:
我们首先使用了 find 查找 multimap 中的键不小于 2 的元素,接着,再次使用了 find 查找 multimap 中键不小于 4 的元素,将返回的迭代器与 end 迭代器进行比较,如果找到,则不等于 end 迭代器,否则,没找到,则返回值等于 end 迭代器。
我们要在 STL 中的 multimap 容器中查找键不小于指定值的第一个元素,我们可以使用 lower_bound 函数。如果成功找到,则返回指向该键值对的双向迭代器;反之,则返回和 end() 方法一样的迭代器。