Sono curioso di sapere se ci fosse qualcosa di simile all'hashset di Java in C++. Io sono una struttura dati con un aspetto veloce, dato che userò solo .contains (e) su di esso. Allo stesso modo, se potessi illuminarmi su come fare un .contains() su qualsiasi struttura di dati che proponi, sarei molto riconoscente. O, per favore non pubblicare solo i documenti C++ come ho già fatto e li trovo gravosi.Java HashSet equiv in C++
risposta
È possibile utilizzare std::unordered_set<>
(standard § 23.5.6), il suo metodo find
(per fare una ricerca) come media complessità di O (1):
#include <iostream>
#include <unordered_set>
int main()
{
std::unordered_set<int> example = {1, 2, 3, 4};
auto search = example.find(2);
if(search != example.end()) {
std::cout << "Found " << (*search) << '\n';
}
else {
std::cout << "Not found\n";
}
}
EDIT:
Come suggerito da @Drew Dormann, è possibile utilizzare alternativamente count
, che ha anche una complessità media di O (1):
#include <iostream>
#include <unordered_set>
int main()
{
std::unordered_set<int> example = {1, 2, 3, 4};
if(example.count(2)) {
std::cout << "Found\n";
}
else {
std::cout << "Not found\n";
}
}
Io raccomanderei' count() 'per emulare contains(). Quella 2 riga se diventa semplicemente 'if (esempio.count (2))' –
@Drew: sì, aggiunto – quantdev
fantastico grazie a tutti e due! – user1352683
- 1. HashSet Collisioni in Java
- 2. Prestazioni Java HashSet
- 3. Java: HashSet vs. HashMap
- 4. Equivalente HashSet di Java in PHP
- 5. Converti C# HashSet in F # Set
- 6. recuperare un oggetto da hashset in C#
- 7. Quanta memoria Java HashSet dovrebbe richiedere
- 8. HashSet
- 9. HashSet Java con criteri di uguaglianza personalizzati?
- 10. Come utilizzare HashSet java vuoto nell'istruzione if?
- 11. C#: valori dizionario per HashSet conversione
- 12. HashSet consente l'inserimento di elementi duplicati - C#
- 13. come trovare e restituire oggetti in java hashset
- 14. spostamento dei dati da un HashSet a ArrayList in Java
- 15. lua equiv di __LINE__ e __FILE__?
- 16. HashSet Iterare mentre si rimuovono gli articoli in C#
- 17. Utilizzo di HashSet in C# 2.0, compatibile con 3.5
- 18. Esiste un equivalente AddRange per un HashSet in C#
- 19. Java HashSet contiene duplicati se l'elemento contenuto viene modificato
- 20. Hashset equivalente in SQL Server
- 21. C'è un HashSet in Delphi?
- 22. Modifica dei valori in HashSet
- 23. HashSet consente di duplicare
- 24. Puoi avere più proprietà meta http-equiv?
- 25. Scala equivalente di nuovo HashSet (Collection)
- 26. Il codice Java che utilizza HashSet di long non funziona?
- 27. Java HashSet consente i duplicati; problema con paragonabile?
- 28. Accedere a un HashSet utilizzando direttamente HashCode? (Java)
- 29. Java HashSet e tipo di dati Breve, incompatibilità?
- 30. Prestazioni Scala vs Java (generazione di HashSet e bigram)
'std :: unordered_set' sarebbe il più vicino – quantdev