multimap
предлагает методы lower_bound
и upper_bound
.Оба могут вернуть итератор к значению с ключом, большим, чем желаемый, с lower_bound
, возможно, дающим точно желаемое.
Теперь я хочу, чтобы итератор к значению, где ключ строго меньше запрошенныйЕсли бы это был map
, а не multimap
, этого было бы относительно просто достичь, как описано здесь: Возвращение наибольшего ключа строго меньше, чем заданный ключ в C ++ Map .Но в multimap
уменьшение итератора не гарантирует его указание на ключ строго меньшего размера.Так что мне нужно будет несколько раз уменьшать, пока не будет найден ключ меньшего размера.Не особенно приятно.
Есть ли более элегантный способ сделать это?
Ключи, как правило, будут с плавающей точкой.
Мои извинения, оказывается, вы
можете на самом деле сделать это с одним уменьшением.Я просто ошибся в своей программе, это была настоящая ошибка.