Сортировка std :: map по значению перед выводом и уничтожением

Я знаю, что карта не готова к сортировке. Это'сильно оптимизирован для быстрого и случайного доступа к ключу и фактически нет поддержки.std::sort

Моя текущая проблема заключается в том, что яве полныйmap который яЯ больше не буду использовать. Мне просто нужно извлечь 10 пар вvalue(int) заказать и уничтожить его.

Лучше всего, если бы это было возможно, было бы отсортировать его на месте, а затем повторить его 10 раз, но это, очевидно, не является решением.

я пробую разные решения, как проходя черезmultimap (чтобы разрешить дубликаты ключей), но яХотелось бы узнать, есть ли более элегантное решение, максимально используя алгоритмы stl.

EDIT: Я

Я использую карту, потому что в 99% случаев она мне нужна как карта: быстрый поиск клавиш для увеличения значений. Просто нужен хороший способ последующего извлечения в порядке стоимости, когда я некарта больше не нужна

Текущий подход должен быть:

std::copy map(std::string,int) кvector(pair(std::string,int))сортировать векторполучить первые 10 значенийуничтожить вектор и карту

Ответы на вопрос(5)

Ваш ответ на вопрос