словарь — Сортировка и вставка элементов C ++ по значению

Как создать собственный компаратор для вставки и сортировки элементов по значению на карте в C ++? Обычно на карте элементы сортируются по ключу. Я хочу успокоить ценностью.

-5

Решение

Это невозможно в C ++ для сортировки карты на основе ее значений из-за ее внутренней реализации.
Карта сортирует элементы только по ключу.

Но есть способ, которым вы можете достичь того, что вы хотите. (Оба требуют дополнительного места, хотя.)

1) Если вы хотите, чтобы все значения были отсортированы & не нуждаются в их картировании. Вы можете поместить все ключи в вектор, а затем отсортировать вектор.

2) Предположим, вы тоже хотите это отображение. Тогда вы можете создать вектор пары<> а затем определить компаратор для сортировки на основе второго значения пары.

bool sortBySecond(const pair<int, int> &a, const pair<int, int> &b){
return (a.second < b.second);
}

Внутри основной:

vector<pair<int, int> > vect;
sort(vect.begin(), vect.end(), sortBySecond);

Вышеупомянутый вектор будет иметь пару, отсортированную на основе ваших значений карты в порядке возрастания.

-1

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

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

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