TB椰程 TypeBuddy 打字搭子

lower_bound 二分

CSP-J · 编程模板 · 片段 · cpp · 难度 3/5 · 共 391 字

升序区间找首个 >= x 的位置

  • STL
  • 二分查找

前置内容

正文

// lower_bound:找首个 >= x 的位置
// 要求区间已升序,需 <algorithm>
#include <algorithm>
#include <vector>
using namespace std;
vector<int> a = {1, 3, 3, 5, 7};
// 返回迭代器,指向第一个 >= 3 的元素
auto it = lower_bound(a.begin(),a.end(),3);
// 下标 = 迭代器 - 起点
int pos = it - a.begin();
// upper_bound:首个 > x 的位置
auto up = upper_bound(a.begin(),a.end(),3);
// 二者之差 = x 的出现次数
int cnt = up - it;
// 等于 x 的个数也可用 equal_range

CSP-J · 编程模板的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK