У меня есть std::map<std::string, float>
, поэтому я могу быстро выполнять поиск значений с плавающей точкой на основе имен, но у меня возникла ситуация, когда мне нужно найти следующее значение с плавающей точкой в списке, как если бы оно было отсортировано численно. Насколько я знаю, я не могу просто использовать итератор, поскольку карта отсортирована по ключам. Так что, если мой набор содержит:
std::pair<"One", 1.0>
std::pair<"Two", 2.0>
std::pair<"Three", 3.0>
std::pair<"Four", 4.0>
std::pair<"Five", 5.0>
Если я хочу найти следующее значение после «Три», что будет наиболее эффективным способом сделать это? Ожидаемый результат в этом случае будет 4,0. Я могу перебрать весь список и сохранить максимальное значение вместе с текущим следующим значением. Это лучший способ?