Boost - unordered_set tutorial / examples / ANYTHING?
-
09-10-2019 - |
Frage
Ich mag unordered_set
in einem Projekt verwenden.
Allerdings Dokumentation ist unvollständig oder nur eine technische Referenz, keine Beispiele.
Kann jemand bieten Links zu Online-Ressourcen, die damit umgehen? Bücher auch gern gesehen, vorzugsweise frei. Google nichts von Wert zurück zu suchen.
Danke!
Lösung
Es ist wenig docs auf, weil es genau verhält sich wie std::set
, mit die Ausnahme, dass es erfordert eine Hashing und entspricht Funktion anstelle einer Vergleichsfunktion. nachschlagen nur Beispiele für std::set
, und ersetzen sie durch std::unordered_set
und Sie sollten in Ordnung.
Wenn Sie eine Hash-Funktion schreiben müssen, gibt es Beispiele in der Dokumentation, dh dieses .
Andere Tipps
Code der häufigste Anwendungsfall:
#include <boost/unordered_set.hpp>
using boost::unordered_set;
using std::string;
using std::cout;
using std::endl;
int main (void)
{
// Initialize set
unordered_set<string> s;
s.insert("red");
s.insert("green");
s.insert("blue");
// Search for membership
if(s.find("red") != s.end())
cout << "found red" << endl;
if(s.find("purple") != s.end())
cout << "found purple" << endl;
if(s.find("blue") != s.end())
cout << "found blue" << endl;
return 0;
}
Output
found red
found blue
Weitere Informationen:
http://www.cplusplus.com/reference/unordered_set/unordered_set/find /
Die Boost-Behälter sind effektiv eine Implementierung der Schnittstelle spezifiziert zuerst von dem C ++ Standard Library Technical Report (bekannt als TR1), wie sie in dem Boost-docs erwähnt. Sie scheinen Teil der neuen Standards zu seinen Entwurf arbeiten jetzt. Google schaltet sich einige weitere Dokumentation / Beispiele, wenn Sie für TR1 und unordered_set suchen. Ich mag die MSDN Referenz, die auch einige Proben hat:
Ich würde versuchen, die gleichen Zugriffsmethoden verwenden, die Sie auf std::set
oder anderen Behältern verwenden, http://www.boost.org/doc/libs/1_37_0/doc/html/unordered.html scheint zuzustimmen.