1

root 站长 2019-07-11 16:41:02 2024-10-19 20:03:55 27

STL 查找

lower_bound 函数

用于在一个升序序列中查找某个元素,并返回第一个不小于该元素的元素的迭代器,如果找不到,则返回指向序列中最后一个元素之后的迭代器。
假设后面的实例均在数组 a 中,包含 n 个元素,查找 x。

int k = lower_bound(a + 1, a + 1 + n, x) - a;

如果没有比这个数字大的就返回 n + 1。

upper_bound 函数

用于在一个升序序列中查找某个元素,并返回第一个大于该元素的元素的迭代器,如果找不到,则返回指向序列中最后一个元素之后的迭代器(减a变成下标)。

int k = upper_bound(a + 1, a + 1 + n, x) - a; 如果没有比这个数字大的就返回 n + 1。

binary_search 函数

用于确定某个元素有没有在一个升序序列中出现过,返回 true 或 false。

int k = binary_bound(a + 1, a + 1 + n, x);

{{ vote && vote.total.up }}

共 11 条回复

yangshenghao

666