Ich verstehe nicht verwenden, warum ich nicht ein unordered_map
mit einem array<int,3>
als Schlüsseltyp haben:eine unordered_map mit Arrays als Schlüssel
#include <unordered_map>
using namespace std;
int main() {
array<int,3> key = {0,1,2};
unordered_map< array<int,3> , int > test;
test[key] = 2;
return 0;
}
ich einen langen Fehler, die relevantesten Teil
seinmain.cpp:11:9: error: no match for ‘operator[]’ (operand types are std::unordered_map<std::array<int, 3ul>, int>’ and ‘std::array<int, 3ul>’)
test[key] = 2;
^
Sind Arrays nicht für Schlüssel geeignet, weil sie einige Anforderungen nicht erfüllen?
Ich bekomme eine Fehlermeldung, dass es keine Hash-Funktion für das Array gibt. Ich denke, das ist zu erwarten, und Sie sollten eines implementieren._ "Fehler: keine Übereinstimmung für den Aufruf an" (const std :: hash>) (const std :: array &) '"_ GCC 5.1.0 –
Vielen Dank an alle Menschen, die den Mangel an eine Hash-Funktion für Arrays. Ich dachte naiv, dass es eine ziemlich gewöhnliche Sache ist, zum Beispiel eine spärliche Matrix zu speichern (nicht was ich hier mache). – Adrien