map<int, int>::iterator it1 = m.lower_bound(2);
时间: 2025-03-15 09:06:54 浏览: 28
### C++ 中 `map` 容器的 `lower_bound` 方法
#### 返回值类型
在 C++ 的标准模板库(STL)中,`std::map` 提供了一个名为 `lower_bound()` 的成员函数。此函数返回一个迭代器,指向键不小于给定键的第一个元素[^2]。
其语法形式如下:
```cpp
iterator lower_bound(const Key& key);
const_iterator lower_bound(const Key& key) const;
```
当调用 `lower_bound(key)` 时,如果存在一个键等于或大于指定键 `key` 的元素,则返回指向该元素的迭代器;如果没有这样的元素,则返回指向 `map` 结束位置的迭代器 (`end()`)。
#### 示例代码
下面是一个完整的示例程序展示如何使用 `lower_bound()` 函数:
```cpp
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap = { {1, "Apple"}, {3, "Banana"}, {5, "Cherry"} };
int searchKey = 4;
auto it = myMap.lower_bound(searchKey);
if (it != myMap.end()) {
std::cout << "Found at least: (" << it->first << ", " << it->second << ")" << std::endl;
} else {
std::cout << "No elements with keys >= " << searchKey << std::endl;
}
return 0;
}
```
在这个例子中,我们创建了一个简单的整数到字符串映射表,并尝试找到第一个键值不低于 `searchKey=4` 的项。由于实际数据集中不存在键为 `4` 或更大的最小值,因此会返回下一个可用条目 `(5,"Cherry")`。
#### 解释
上述代码片段展示了几个重要概念:
- **初始化 Map**: 使用列表初始化器来填充一些初始数据。
- **Calling Function**: 调用了 `myMap.lower_bound(4)` 来获取满足条件的第一项。
- **Checking Result**: 如果结果不是结束迭代器(`end()`),则打印该项的具体信息;否则表明没有任何符合条件的数据存在于集合之中[^1].
通过这种方式可以高效地定位特定范围内的首个匹配项目而无需遍历整个容器内容。
---
阅读全文
相关推荐


















