Essential C++82页关于binary_search的问题
书上说调用binary_search之前,必需保证vector数列中有足够的元素。
比如:vector 存了个有序数列 1,1,2,3,5,8
要查的是34。
书上说这不行,如果传入了超出有序数列最大值的数据,搜寻操作不会成功要先检查范围,34比最大值8要大,所以要扩充这个vector直到大于等于34.
…………
我vs2005下,随便传什么数字进去都可以执行啊,找不到返回false(0)。为什么书上说操作不成功,要先检查呢?
[解决办法]
要测试在有序区间中是否存在一个值,使用binary_search。不像标准C库中的(因此也是标准C++库中的)bsearch, binary_search只返回一个bool:这个值是否找到了。binary_search回答这个问题:“它在吗?”它的回答只能是是或者否。如果你需要比这样更多的信息,你需要一个不同的算法。
[解决办法]
不会吧。。。
是不是你看错了?
[解决办法]
算法是不会改变容器的大小.
[解决办法]
刚刚看了一下英文原文
希望楼主把上下都连起来看一下,不要死扣那段代码中的注释