Как найти минимальный элемент в multimap?

Получается только обозначить MIN как огромное число, но пользователь то может превысить его. Знаю, что решение на поверхности, но не могу понять, как это делается. Нужно найти минимальное значение в MULTIMAPe, только не задавая огромное число, а вот например присвоить переменной MIN 1 элемент multimapa. Можно ли так сделать, если да, то как?

    float MIN(multimap<int, float>& map)
    {
        float MIN;
        for (const auto& num : map)
        {
            if (MIN >= num.second)
            {
                MIN = num.second;
            }
        }
        return MIN;
    }

Ответы (2 шт):

Автор решения: Harry

Раз вас все равно интересует значение, а не ключ...

auto * min_iter = min_element(m.begin(),m.end(),
                              [](auto a, auto b) { return a.second < b.second;});

Например, так. Получите итератор, указывающий на наименьший элемент (или первый из них).

→ Ссылка
Автор решения: IR42

Нужно не просто задать огромное число, а нужно задать максимальное для данного типа:

float MIN = std::numeric_limits<float>::max();

Но проще воспользоваться алгоритмом стандартной библиотеки:

auto min_it = std::min_element(map.begin(), map.end(), [](const auto& a, const auto& b) {
    return a.second < b.second;
});

if (min_it != map.end()) {
    cout << "min_element: " << min_it->second << endl;
} else {
    cout << "map is empty" << endl;
}
→ Ссылка