map lower_bound
时间: 2023-10-29 22:53:11 浏览: 108
和upper_bound的功能和使用方式是什么?
lower_bound和upper_bound是std::map容器中的两个函数,用于查找满足特定条件的元素的位置。lower_bound函数返回一个指向第一个不小于指定键值的元素的迭代器,而upper_bound函数返回一个指向第一个大于指定键值的元素的迭代器。
以一个例子来说明它们的使用方式,假设有一个map容器mp,其中存储了一些键值对。我们可以通过以下代码示例来理解lower_bound和upper_bound的用法:
```cpp
map<int, string> mp;
mp = "a";
mp = "b";
mp = "c";
mp = "d";
map<int, string>::iterator p1, p2;
p1 = mp.lower_bound(3); // p1指向键值为3的元素,即p1->second == "b"
p2 = mp.upper_bound(3); // p2指向键值为5的元素,即p2->second == "c"
p1 = mp.lower_bound(9); // p1指向mp.end(),因为容器中没有键值为9的元素
p2 = mp.upper_bound(9); // p2指向mp.end(),因为容器中没有键值为9的元素
```
如果lower_bound和upper_bound找不到满足条件的元素,它们会返回指向容器末尾的迭代器,即map.end()。这意味着在容器内所有节点都比指定键值小的情况下,lower_bound和upper_bound都会返回map.end(),而在容器内所有节点都比指定键值大的情况下,lower_bound会返回map.begin(),而upper_bound会返回map.end()。
阅读全文