C STL中binary search的返回值為什麼是bool型別,而不是像c中bsearch那樣返回找到的元素的下標?

時間 2021-05-11 20:36:25

1樓:MouseHaoHao

template

ForwardIterator

,class

T>bool

binary_search

(ForwardIterator

first

,ForwardIterator

last

,constT&

val)

沒辦法返回下標 :)

而且如果有重複的話,下標是要返回 start_pos, end_pos 麼?

2樓:Ryan Feng

要查詢的結構不一定是乙個序列,可以是乙個樹或圖或其他任意結構,並且注意它的引數是前向迭代器而不是隨機訪問迭代器,也說明了binary_search支援更廣泛的結構,這些結構可能不支援隨機訪問,返回下標也沒有意義。

3樓:唐魚

Binary_search is a version of binary search: it attempts to find the element value in an ordered range [first, last) It returns true if an element that is equivalent to value is present in [first, last) andfalse if no such element exists.

4樓:陳良喬

這個問題應該很好理解

binary_search只是用於測試某個元素是否在乙個已經排序的序列之類, 所以他只需要返回存在(true)或者不存在即可(false),而要找到具體的某個函式,則有更加專業的find函式

在C語言中,bsearch實際上肩負了C++中binary_search的雙重功能(C中好像沒有find函式),所以他不僅要找到,還要返回具體的位置

C STL中 for each 演算法存在的意義是什麼?

白東傑 三年過去了,我偶然看到了這個老問題。很多人已經說過 range for 了,我想再補充一點。C 的 range for 在 C 20 出來之前是個殘廢,只能順序迭代,不能反向,也不能 skip。所以有特別的迭代要求的時候就只好手寫傳統三段 for,而 Bjarne Stroustrup 表示...

怎樣學習 C STL?

JC李潤濤 個人淺見,在學習過程中,看C 作者的 以上這本看完之後再去 我的方法很笨,但是自我感覺還是挺適合新人的。要學習STL,首先得有基本的C C 知識,我看的是c primer 後來又看了the c programming language 過程中發現c掌握不夠,於是又看了c與指標和c陷阱缺陷...

C STL中set是如何判斷兩個結構體相等的?

已登出 set C Reference Internally,the elements in a set are always sorted following a specific strict weak ordering criterion indicated by its internal c...