C++理解upper_bound 和lower_bound

C++中的upper_bound 和lower_bound比較容易弄混。記住的方法是根據名字記住其功能,如upper_bound表示以某個數爲上限,這個數應該放在哪個位置;lower_bound表示以某個數爲下限,這個數應該放在哪個位置。同時注意數組應該提前拍好序。

舉個例子:


#include<bits/stdc++.h>
using namespace std;
int main() {
  int a[] = {1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4};
 
  cout << (lower_bound(a, a + 12, 4) - a) << endl; //輸出 9
  cout << (upper_bound(a, a + 12, 4) - a) << endl; //輸出 12
  cout << (lower_bound(a, a + 12, 1) - a) << endl; //輸出 0
  cout << (upper_bound(a, a + 12, 1) - a) << endl; //輸出 3
  cout << (lower_bound(a, a + 12, 3) - a) << endl; //輸出 6
  cout << (upper_bound(a, a + 12, 3) - a) << endl; //輸出 9
  cout << (lower_bound(a, a + 12, 5) - a) << endl; //輸出 12
  cout << (upper_bound(a, a + 12, 5) - a) << endl; //輸出 12
  cout << (lower_bound(a, a + 12, 0) - a) << endl; //輸出 0
  cout << (upper_bound(a, a + 12, 0) - a) << endl; //輸出 0
 
  return 0;
}
————————————————
版權聲明:本文爲CSDN博主「錦夏挽秋」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq1337715208/article/details/81072709

以4爲下限(數組中的數滿足>=4),4應該放在位置9

以3爲上限(數組中的數滿足<=3),這個位置也要放在位置9

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章