bool search_value_loop(
std::
vector <
int>
&ivec,
const int search_value,
std::
vector <
int>
::
difference_type &
position){
auto start=ivec.cbegin();
auto end=ivec.cend();
auto mid=start+(end-start)/2;
// std::cout<<*mid<
while(mid!=end && *mid!=search_value){
if(*mid
start=mid+1;
}else{
end=mid-1;
}
mid=start +(end-start)/2;
}
if(*mid==search_value){
position=mid-ivec.cbegin()+1;
return true;
}
return false;
}
int main()
{
bool rest;
vector <int> ::difference_type position;
vector <int> ivec={1,2,3,4,18,23,85,122};
rest=search_value_loop(ivec,122,position);
if(!rest){
std::cout<<"no match values"<<std::endl;
}else{
std::cout<std::endl;
}
}