equal_range
生活随笔
收集整理的這篇文章主要介紹了
equal_range
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
equal_range
是C++ STL中的一種二分查找的算法,試圖在已排序的[first,last)中尋找value,它返回一對(duì)迭代器i和j,其中i是在不破壞次序的前提下,value可插入的第一個(gè)位置(亦即lower_bound),j則是在不破壞次序的前提下,value可插入的最后一個(gè)位置(亦即upper_bound),因此,[i,j)內(nèi)的每個(gè)元素都等同于value,而且[i,j)是[first,last)之中符合此一性質(zhì)的最大子區(qū)間
? ?如果以稍許不同的角度來(lái)思考equal_range,我們可把它想成是[first,last)內(nèi)"與value等同"之所有元素形成的區(qū)間A,由于[fist,last)有序(sorted),所以我們知道"與value等同"之所有元素一定都相鄰,于是,算法lower_bound返回區(qū)間A的第一個(gè)迭代器,算法upper_bound返回區(qū)間A的最后一個(gè)元素的下一個(gè)位置,算法equal_range則是以pair的形式將兩者都返回
? ?即使[fist,last)并未含有"與value等同"之任何元素,以上敘述仍然合理,這種情況下,"與value等同"之所有元素形成的,其實(shí)是一個(gè)空區(qū)間,在不破壞次序的情況下,只有一個(gè)位置可以插入value,而equal_range所返回的pair,其第一和第二(都是迭代器)皆指向該位置。
總結(jié)
以上是生活随笔為你收集整理的equal_range的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Elasticsearch Pipeli
- 下一篇: HUE 打开 WorkFlow异常 Op