J'essaie de créer une carte non ordonnée en utilisant une paire comme clé. Ceci est quelque chose de nouveau pour moi, donc je l'ai suivi quelques tutoriels et j'ai écrit ceci:La norme C++ ne fournit pas de hachage pour ce type
struct pair_hash {
template <class T1, class T2>
std::size_t operator() (const std::pair<T1, T2> &p) const {
auto h1 = std::hash<T1>{}(p.first);
auto h2 = std::hash<T2>{}(p.second);
return h1^h2;
}
};
int wmain(int argc, wchar_t * argv[])
{
{...}
using Key = std::pair<DWORD, DWORDLONG>;
std::unordered_map<Key, USN, pair_hash> mymap;
std::pair<DWORD, DWORDLONG> mypair(dwVolSN, fileId);
mymap.insert({ mypair, usn });
std::unordered_map<Key, USN>::const_iterator got;
got = mymap.find(mypair); // HERE I GET THE ERROR
return 0
}
Quelle est votre question? – 0x5453
Je ne sais pas comment passer le résultat de mymap.find (mypair) à "got", j'obtiens l'erreur suivante à la construction: La norme C++ ne fournit pas un hachage pour ce type –