Nie rozumiem, dlaczego nie mogę mieć unordered_map
z array<int,3>
jako typ klucza:Korzystanie unordered_map z tablicami jak klucze
#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;
}
Dostaję dużo błędów, najbardziej istotna część bycia
main.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;
^
Czy tablice nie są kluczami, ponieważ nie spełniają pewnych wymagań?
Pojawia się błąd informujący, że dla tablicy nie ma funkcji mieszania. Sądzę, że jest to oczekiwane i powinieneś je wdrożyć._ "błąd: brak dopasowania dla wywołania" (const std :: hash>) (const std :: array &) '' _ GCC 5.1.0 –
Podziękowania dla wszystkich osób, które wskazywały na brak funkcja skrótu dla tablic. Naiwnie sądziłem, że to dość powszechna rzecz, na przykład do przechowywania rzadkiej matrycy (nie to, co tutaj robię). – Adrien