Я пытаюсь получить индекс вектора на основе его значения, используя std::upper_bound
. Однако по какой-то причине следующий код устанавливает tmpKey
равным 2
по сравнению с моим ожидаемым значением 1
. Что-нибудь выделяется как ужасно неправильное?
int main()
{
float time = 30.0000000;
std::vector<float> positionKeyTimes = { 0.000000000, 30.0000000 };
auto it = std::upper_bound(positionKeyTimes.begin(), positionKeyTimes.end(), time);
auto tmpKey = (size_t)(it - positionKeyTimes.begin());
std::cout << tmpKey << "\n";
std::cin.get();
}