std::lower_bound(first, last, val) // 返回从左到右第一个大于等于val的位置 std::upper_bound(first, last, val) // 返回从左到右第一个大于val的位置