Ho una classe dire class stuff{ int id; int ammount; int quality; /*...*/ };
e ho un vector<stuff> items
. Voglio rendere la mia collezione ordinabile per stuff::id
e ricercabile per staff::id
. Potrei farlo tramite find_if e ordinare usando qualche funzione speciale di stl lambda di ordinamento. Eppure voglio avere tutto per impostazione predefinita in vettoriale. Ho sentito che c'è un modo per creare la funzione di hashing, ma ho cercato tutto intorno non riuscivo a trovarlo ... Quindi, come rendere la classe ordinabile/ricercabile all'interno del vettore con le funzioni vettoriali predefinite?Come rendere la classe ordinabile all'interno del vettore?
5
A
risposta
6
selezionare, implementare un operator<
che confronta due strutture:
bool operator<(const stuff& s1, const stuff& s2)
{
// Your comparison here
}
Questa è l'operatore che viene utilizzato per impostazione predefinita per la maggior parte di tutti smistamento.
Per il controllo di uguaglianza, creare uno operator==
allo stesso modo.
Problemi correlati
- 1. Come rendere la classe più testabile?
- 2. Howto rendere RequiredFieldValidator cambiare la classe CSS del div genitore
- 3. jQuery selettore ordinabile ("id" vs. "classe")?
- 4. Rimozione di duplicati da un vettore non ordinabile
- 5. Come applicare la semantica del movimento quando un vettore cresce?
- 6. Come rendere MatrixForm visualizzare la riga orizzontalmente come un vettore di riga reale e non verticalmente come vettore di colonna?
- 7. Come rendere la classe come un oggetto IEnumerable in C#?
- 8. Svantaggio nel rendere la classe serializzabile
- 9. C++: vettore di classe template
- 10. Rendere la mia classe C++ iterabile tramite BOOST_FOREACH
- 11. std :: vector.pop_back() modifica la capacità del vettore?
- 12. Come rendere una classe interna Parcelable
- 13. C# - Come rendere un metodo visibile solo alle classi che ereditano la classe base del metodo
- 14. Scala: Come rendere la copia della classe del caso mantenere le informazioni manifest
- 15. Vettore del filtro attivo
- 16. Come non consentire il trasferimento di parti dell'elenco jquery ordinabile?
- 17. Come rendere un elemento negli elenchi ul non ordinabile e non trascinabile?
- 18. Creare un vettore con una lunghezza di esecuzione del vettore originale con la stessa lunghezza del vettore originale
- 19. Come rendere una classe Thread Safe
- 20. dovrei rendere statica questa classe?
- 21. Eliminazione del vettore di puntatori
- 22. Come posso rendere una tabella HTML ordinabile con javascript senza caricare i dati tramite AJAX?
- 23. vettore di classe senza difetto costruttore
- 24. Definizione di una classe definita dall'utente pitone, ordinabile, lavabile
- 25. Inizializzazione del vettore statico
- 26. Rendere una classe non ereditata
- 27. Come creare vettoriale del vettore in R
- 28. Android: Rendere una classe parcellabile
- 29. Come trasmettere un vettore di shared_ptrs di una classe derivata a un vettore di share_ptrs di una classe base
- 30. Come rendere la dimensione personalizzata di FloatingActionButton
Definire 'stuff :: operator <(const stuff & that)' che restituisce 'this-> id
Potresti usare 'std :: map'? –
Nawaz
Il punto qui è ottenere come fare cose come essere in grado di usare la mia classe anche come 'map'' pair :: first', per cercare tutti i contenitori di base per classe definita dalla mia logica di business - non generali e stringhe. – DuckQueen