比如有个从小到大排列的数组:**[5, 7, 7, 8, 8, 10]**
找到第一个≥8的数的位置

左闭右闭:
vector<int> nums{5, 7, 7, 8, 8, 10}; |
左闭右开:
int lower_bound2() { |
左开右开:
int lower_bound() { |
找到第一个>8的数的位置
转化成:找到第一个 ≥ x + 1的数
找到第一个<8的数的位置
转化成:找到第一个 ≥ x 的左边那个数
找到第一个 ≤ 8的数的位置
转化成:找到第一个>x的左边那个数
比如有个从小到大排列的数组:**[5, 7, 7, 8, 8, 10]**

左闭右闭:
vector<int> nums{5, 7, 7, 8, 8, 10}; |
左闭右开:
int lower_bound2() { |
左开右开:
int lower_bound() { |
转化成:找到第一个 ≥ x + 1的数
转化成:找到第一个 ≥ x 的左边那个数
转化成:找到第一个>x的左边那个数