Ich habe eine Klasse sagen class stuff{ int id; int ammount; int quality; /*...*/ };
und ich habe eine vector<stuff> items
. Ich möchte meine Sammlung sortierbar machen durch stuff::id
und suchbar durch staff::id
. Ich könnte es über find_if tun und sortieren mit einigen speziellen stl Lambda-basierte Sortierung Funktion. Aber ich möchte alles standardmäßig im Vektor haben. Ich habe gehört, es gibt eine Möglichkeit, Hashing-Funktion zu erstellen, aber ich suchte rundherum konnte es nicht finden ... So wie Klasse sortierbar/durchsuchbar innerhalb Vektor mit Standard-Vektor-Funktionen zu machen?Wie man sortierbare Klasse innerhalb des Vektors bildet?
5
A
Antwort
6
Zum Sortieren, implementieren eine operator<
, die zwei Strukturen vergleicht:
bool operator<(const stuff& s1, const stuff& s2)
{
// Your comparison here
}
Dies ist der Operator, der für die meisten aller Sortierung standardmäßig verwendet wird.
Für die Überprüfung der Gleichheit, erstellen Sie ähnlich eine operator==
.
Verwandte Themen
- 1. Wie man Grenzboden innerhalb des Blockes bildet?
- 2. Wie man Vektorelement innerhalb des Vektors in Java einfügt
- 3. wie man Kindelementabdeckung Grenze des Elternteils bildet?
- 4. Initialisierung des Vektors der Objekte
- 5. Wie man einen polymorphen has_many für eine geerbte Klasse bildet
- 6. EventLogQuery: Wie man Abfragezeichenfolge bildet?
- 7. Sortierbare Sprünge außerhalb des Containers
- 8. SSE-Ausrichtung des 3D-Vektors
- 9. ausbreitende Daten innerhalb eines Vektors
- 10. Initialisierung des statischen Vektors
- 11. Re-arrayable, Draggable, sortierbare divs innerhalb Raster
- 12. Zählfrequenz einer Sequenz innerhalb eines Vektors
- 13. Wie Klasse Eigenschaften in XAML von Xamarin zu binden, bildet
- 14. Wie man "fuzzy date" in Ruby bildet?
- 15. Wie man Mongoid Ordnung richtig bildet?
- 16. Wie man Diagrammlinie im Entwurf Android bildet
- 17. Wie man einen Satz Wörterbücher bildet
- 18. Wie man Linien die gleiche Länge bildet?
- 19. Wie man die richtige Abfrage bildet
- 20. Wie man verschiedene androide Wertverzeichnisse bildet
- 21. XQuery, wie man eine Ähnlichkeitsmatrix bildet?
- 22. Wie sortierbare ID für nicht sortierbare Klasse in jquery ui sortierbar erhalten
- 23. Jquery Sortierbare ID des zugrunde liegenden div
- 24. Fasst struct Mitglieder innerhalb eines Vektors
- 25. jquery sortierbare Artikel
- 26. Verwenden einer Klasse innerhalb des Moduls
- 27. Wie kann man Winkel eines Vektors begrenzen?
- 28. Wie man eine einzelne Reihentabelle innerhalb der bootstrap navbar reaktionsfähig bildet
- 29. javascript Formel zur Berechnung des Vektors normalen
- 30. C++: Das erste Element des Vektors "korrumpieren"
Definiere 'stuff :: operator <(const stuff & that)', die 'this-> id
Können Sie statt dessen 'std :: map' verwenden? –
Nawaz
Punkt hier ist zu bekommen, wie man Dinge tun kann, um meine Klasse auch als 'map'' pair :: first' zu verwenden, um nach allen Basiscontainern nach Klassen zu suchen, die durch meine Geschäftslogik definiert sind - nicht allgemeine ints und Saiten. – DuckQueen