Существует ли функция STL, которая возвращает итератор или индекс для наименьшего элемента, большего, чем некоторое входное значение в несортированном массиве. std::lower_bound
не работает, потому что требует разбиения, а мой массив не разбит на части в соответствии с его требованиями.
Например,
int main(int argc, char const *argv[])
{
vector<int> vec{5,1,2,9,1,5,3};
std::cout << std::lower_bound(vec.begin(), vec.end(), 2) - vec.begin() << std::endl;
}
Вывод здесь равен 3, когда я хочу, чтобы это было 6, соответствующее vec [6].