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!

War es hilfreich?

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:

http://msdn.microsoft.com/en-us/library/ bb982739.aspx

http://www.google.de/search?q=tr1+unordered_set

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top