как вставить в отсортированном порядке

я знаю это std::find() помогает найти позицию итератора для заданного значения. А также std::insert() вставить данное значение в контейнер в известной позиции.

Однако есть ли какая-нибудь функция, которую я могу вызвать, которая возвращает позицию, в которую должно быть вставлено новое значение в соответствии с алфавитным порядком в стандартной библиотеке?

Например, если очередь A23, A34, B59, D49.
Если дополнение С50, то такая функция, как std::foo() возвращает позицию между B59 и D49. Так что я могу тогда позвонить std::insert() закончить работу?

0

Решение

Пара функций std::lowerbound а также std::upperbound даст вам итератор для точки вставки, который будет держать вектор в отсортированном порядке. Если элемент с таким же значением уже существует, lowerbound даст точку вставки перед существующим значением, в то время как upperbound даст точку позади. использование upperbound если вы хотите стабильную сортировку.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector