Я пытаюсь написать алгоритм сортировки для следующей неупорядоченной карты. Я видел this вопрос, и я пытаюсь реализовать его для неупорядоченной карты, но она не работает!Как получить медианное значение на неупорядоченной карте?
Примечание. Мне не разрешено использовать какие-либо функции сортировки STL.
void quickSort(unordered_map<string, int> map, unordered_map<string, int>::iterator left,unordered_map<string, int>::iterator right) {
unordered_map<string, int>::iterator i=left;
unordered_map<string, int>::iterator j=right;
unordered_map<string, int>::iterator pivot = std::advance(map.begin(), map.size()/2);
unordered_map<string, int> tmp;
}
int main(){
unordered_map<string, int> map;
map["blah"] = 2;
map["the"] = 5;
quickSort(map,map.begin(),map.end());
}
Вы ** не можете ** сортировать 'неупорядоченный_мап' на месте. Вам необходимо перенести значения в другой контейнер (например, «вектор»). –
@ KonradRudolph любая причина? – Bernard
Просто из любопытства: Почему вам не разрешено использовать 'std :: sort()' вообще? Это какая-то домашняя работа? – TobiMcNamobi