Ich bin neugierig, ob es etwas ähnliches wie das Java-Hashset in C++ gibt. Ie.e eine Datenstruktur mit schnellem Blick, da ich nur .contains (e) darauf laufen lassen werde. Ebenso, wenn Sie mich aufklären könnten, wie man eine .contains() auf welcher Datenstruktur, die Sie vorschlagen, macht, wäre ich sehr dankbar. O, bitte posten Sie nicht nur die C++ - Dokumente, wie ich es bereits getan habe und finde sie lästig.Java HashSet equiv in C++
Antwort
Sie können std::unordered_set<>
(Standard § 23.5.6) verwenden, seine find
Methode (eine Lookup zu tun) als durchschnittliche Komplexität von 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:
wie von @Drew Dormann vorgeschlagen, können Sie alternativ count
verwenden, die auch eine durchschnittliche Komplexität von O (1) aufweist:
#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";
}
}
Ich würde' count() 'für die Emulation von contains() empfehlen. Diese 2 Zeile wird einfach 'if (example.count (2))' –
@Drew: yep, hinzugefügt – quantdev
genial danke euch beiden! – user1352683
- 1. HashSet Kollisionen in Java
- 2. HashSet C# -Element in HashSet modifizieren
- 3. Java HashSet entspricht in PHP
- 4. Java HashSet Leistung
- 5. C# Hashset Umwandlung in Listen
- 6. C# Wörterbuch HashSet
- 7. HashSet in Java - Vergleich und Hashtasten
- 8. Abrufen eines Objekts aus Hashset in C#
- 9. Java HashSet mit einem benutzerdefinierten Gleichheits-Kriterium?
- 10. Java - HashSet zum Filtern von Duplikaten (XSSFCell)
- 11. Java - Wissen, was eliminiert wurde HashSet?
- 12. Java HashSet und Datentyp Kurz, Inkompatibilität?
- 13. Scala Äquivalent neuer HashSet (Sammlung)
- 14. C# XNA Xbox HashSet und Tuple
- 15. Convert C# HashSet zu F # Set
- 16. C# Hashset enthält nicht eindeutige Objekte
- 17. HashSet als Schlüssel für andere HashSet
- 18. Thread-Sicherheit von Java HashSet in einem Apache Tomcat Servlet
- 19. wie Objekte in java hashset gefunden und zurückgegeben werden
- 20. Verschieben von Daten von einem HashSet in Java Arraylist
- 21. Wie benutze ich Java leeres HashSet in if-Anweisung?
- 22. Hinzufügen eines Elements zu einem HashSet in einer HashMap Java
- 23. HashSet Lastfaktor
- 24. Java HashSet enthält Duplikate, wenn das enthaltene Element geändert wurde
- 25. Gibt es ein AddRange Äquivalent für eine HashSet in C#
- 26. Verwenden von HashSet <T> in C# Eigenschaften.Einstellungen
- 27. Verwendung von HashSet in C# 2.0, kompatibel mit 3.5
- 28. Wie kann ich einen Observable Hashset in C# erstellen?
- 29. HashSet-Iteration beim Entfernen von Elementen in C#
- 30. Hashset entspricht in SQL Server
'std :: unordered_set' wäre der nächste – quantdev