Domanda

Mi piacerebbe utilizzare unordered_set in un progetto.

Tuttavia, la documentazione perché è incompleta o solo un riferimento tecnico, nessun esempio.

Qualcuno può fornire link a risorse online che si occupano di esso? Libri anche benvenuti, preferibilmente gratuito. Google che cerca restituito nulla di valore.

Grazie!

È stato utile?

Soluzione

C'è poco documenti su di esso perché si comporta esattamente come std::set , con l'eccezione che richiede un hashing e uguale funzione invece di una funzione di confronto. Basta guardare in alto esempi per std::set, e sostituirli con std::unordered_set e si dovrebbe essere multa.

Se è necessario scrivere una funzione di hashing, ci sono esempi nella documentazione, vale a dire questo .

Altri suggerimenti

Codice per la maggior parte dei casi di uso comune:

#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

Ulteriori informazioni

http://www.cplusplus.com/reference/unordered_set/unordered_set/find /

I contenitori Boost sono effettivamente un'implementazione dell'interfaccia prima specificato dal rapporto C ++ standard Libreria tecnica (noto come TR1), come accennato nella documentazione boost. Essi sembrano essere parte dei nuovi standard Working Draft da ora. Google salta fuori un po 'di documentazione / esempi se si cerca TR1 e unordered_set. Mi piace il riferimento MSDN, che ha anche alcuni campioni:

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

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

Vorrei provare a utilizzare gli stessi metodi di accesso che si utilizza su std::set o altri contenitori, http://www.boost.org/doc/libs/1_37_0/doc/html/unordered.html sembra essere d'accordo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top