lower_boud 返回第一个>= key的数字,如果不存在迭代器==end(),
upper_boud 返回第一个>key 的数字,如果不存在返回迭代器==end();
例子:
std::map<int, std::string> myMap;
myMap[1] = "One";
myMap[2] = "Two";
myMap[4] = "Four";
myMap[5] = "Five";
// 使用 lower_bound 查找大于或等于 3 的第一个元素
auto it = myMap.lower_bound(3);
if (it != myMap.end()) {
std::cout << "value: " << it->second << std::endl;// << "Key: << it->first << ", Value: " it->second << std::endl;
}
else {
std::cout << "Element not found." <<std::endl;
}
此时打印Four。
把lower_bound 改成 upper_bound 打印的结果也是Four。
把auto it = myMap.lower_bound(3); 改成 auto it = myMap.lower_bound(2); 打印“two”
把auto it = myMap.lower_bound(3); 改成 auto it = myMap.upper_bound(2); 打印“Four”
把auto it = myMap.lower_bound(3); 改成 auto it = myMap.lower_bound(5); 打印“Five”
把auto it = myMap.lower_bound(3); 改成 auto it = myMap.upper_bound(5); 打印“Element not found”。