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);
共 11 条回复
666