我想问一下 cpp ( C++ ) 中的 lower_bound 在应用于未排序数组时的行为。我的意思是当我运行以下程序时。
#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int arr[]={8,9,10,1,2,3};
auto itr= lower_bound(arr,arr+6,7);
cout<<*itr<<endl;
}
它给出的输出为“2”。但是根据lower_bound的定义,它将迭代器提供给第一个以'val'失败'<'的元素。所以根据这个定义,答案不应该是“8”,因为“8不小于7”。我知道它适用于排序数组,但我想知道这个值背后是否有逻辑或者它是垃圾。
谢谢。