Boost - esercitazione unordered_set / examples / NULLA?
-
09-10-2019 - |
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!
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:
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.