Tworzę C++ w wersji std::map<int, int>
, które wolałbym mieć klucze posortowane od najwyższej do najniższej zamiast domyślnej kolejności sortowania. Moje badania doprowadziły mnie do std::greater który wyglądał obiecująco, ale kiedy próbuje go używać Dostaję błąd kompilacji:Jak sortować klucze mapy C++ za pomocą std :: greater?
invalid type argument of unary ‘*’ (have ‘int’)
moja deklaracja jest mapa:
std::map<int, int, std::greater<int> > numMap;
a błąd jest wyrzucenie z tego funkcja:
void Row::addNumber(int num, int pos) {
numMap.insert(num, pos);
}
odpowiedzi na podobne pytania, takie jak this zawierać nawiasów w zgłoszeniu, tj std :: większa () - ale kiedy to włączam, otrzymuję wiele błędów dotyczących funkcji zwracającej funkcję.
Czy Twój problem nie został rozwiązany podczas odczytywania mapy wstecz? tylko mówię. – fonZ
Czy mówisz, że nie otrzymujesz tego samego błędu, gdy używasz domyślnego komparatora 'std :: map'? Ponieważ w tym przypadku nie powinno to mieć znaczenia. –