gpt4 book ai didi

c++ primer Binary Search 通过迭代器

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:53 31 4
gpt4 key购买 nike

问题在评论里!

代码:

auto beg = text.begin(), end = text.end();  
auto mid = text.begin() + (end - beg) / 2;

while(mid != end && *mid != key)
{

if (key < *mid)
end = mid; //why not end = mid - 1??
else
beg = mid + 1;
mid = beg + (end - beg) / 2;
}

这个问题困扰了我很长时间。

最佳答案

一个更简短的答案:

不变的是 end 始终是要搜索的区间的“结束点”。

由于您要搜索的区间是 beg .. mid-1,因此 mid 是“最后一个”迭代器。

关于c++ primer Binary Search 通过迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39284495/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com