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