lower_bound函数查找不到
时间: 2023-10-29 07:53:39 浏览: 77
lower_bound函数在查找不到时会返回一个指向比目标值大的第一个元素的迭代器或指针的位置。在引用中的测试中,lower_bound函数返回的是最后一个元素的下一个位置,因为目标值不在数组中。在引用中的测试中,如果lower_bound函数找不到字符串t的前缀,则会返回一个指向比t大的第一个字符串的位置。
相关问题
lower_bound函数找不到
lower_bound()函数用于在一个有序序列中查找第一个大于等于某个值的元素的位置,而upper_bound()函数用于查找第一个大于某个值的元素的位置。\[1\]
lower_bound()函数的底层实现是通过二分查找来进行的。它首先计算出序列的长度,然后在每次循环中,根据当前区间的中间位置来判断目标值与中间值的大小关系,从而缩小查找范围。如果中间值小于目标值,则将区间的起始位置移动到中间位置的下一个位置,并更新剩余的查找长度。如果中间值大于等于目标值,则将剩余的查找长度缩小为当前区间的一半。通过不断缩小查找范围,最终可以找到第一个大于等于目标值的元素的位置。\[3\]
如果lower_bound()函数找不到目标值,它会返回一个指向序列中第一个大于目标值的元素的位置。这意味着目标值在序列中不存在,或者目标值大于序列中的所有元素。\[1\]
所以,如果lower_bound()函数找不到目标值,可能是因为目标值在序列中不存在,或者目标值大于序列中的所有元素。请检查目标值和序列的正确性,并确保序列是有序的。
#### 引用[.reference_title]
- *1* *2* *3* [lower_bound()/upper_bound()函数(C++)](https://blog.csdn.net/weixin_51566349/article/details/128086465)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
lower_bound函数找不到的返回值
lower_bound函数是C++标准库中的一个函数,用于在有序序列中查找第一个大于或等于给定值的元素的位置。如果lower_bound函数找不到给定值,则返回指向大于给定值的第一个元素的迭代器。
具体来说,如果给定值存在于有序序列中,则lower_bound函数返回指向该值的迭代器;如果给定值不存在于有序序列中,则lower_bound函数返回指向大于给定值的第一个元素的迭代器。
如果lower_bound函数找不到给定值,并且给定值大于有序序列中的所有元素,则返回指向有序序列末尾的迭代器。
阅读全文